我正在为外部接口内容的编码而苦苦挣扎。在 MySQL 数据库中,排序规则是latin1_swedish_ci
. 也是字段 ist 的整理latin1_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");