【发布时间】:2013-03-25 17:17:32
【问题描述】:
我在为外部接口的内容编码而苦苦挣扎。在 MySQL 数据库中,排序规则是 latin1_swedish_ci。也是字段istlatin1_swedish_ci的排序规则。 php 脚本以 UTF-8 编码,浏览器中的输出为我提供 UTF-8。除此数据库的内容外,一切正常。数据库连接应该是UTF-8(Typo3 4.7),内容是
街道
但应该是straße。
mb_detect_encoding($data['street'],'UTF-8') 说它是UTF-8。如果我使用utf8_decode() 我会得到
直线
如果我使用utf8_encode() 我会得到
街道
我的假设是 UTF-8 编码的数据存储在 ISO-8859-1 中,但如果是这种情况,这里就不应该出现这样的问题。如何找出真正的编码是什么?
PS:我无法更改源的编码!
我最初的问题的解决方案:
我必须使用这行代码将数据库连接从 UTF-8 设置为 ISO-8859-1
$res = $GLOBALS['TYPO3_DB']->sql_query("SET NAMES latin1");
【问题讨论】:
标签: utf-8 character-encoding typo3 iso-8859-1 latin1