我有一个包含奇怪字符的字符串数据库,例如:
Design Tattoo Ãœbungshaut
Mehrflächiges Biozid Reinigungs- & Desinfektionsmittel
根据我的理解,Ãœ
和ä
的位置应该是Ü
和Ã
。{/ 1}}。
是否有标准功能可以将这些多个字符恢复为正确的UTF-8
形式?
UTF-8
PHP
我遇到$url = iconv('utf-8', 'iso-8859-1', $url);
似乎已接近但却不尽如人意。也许我有错误的参数,但无论如何只是想知道这个问题是如何知道的,以及是否有一个已建立的修复?
原始数据来自电子商务系统CubeCart
,似乎没有问题将其转换回普通文本FYI。
答案 0 :(得分:0)
作为示例显示的数据是错误地解释为ISO-8859-1(或windows-1252)的UTF-8编码数据。问题组合实际上是“Ü”和“ä”(“Ā”没有出现在德语中)。显然你需要做的是将数据读取为UTF-8并以这种方式显示,而不是转换它。
答案 1 :(得分:0)
如果数据库和输出是utf-8,可能是因为你没有使用utf-8作为客户端字符集。
如果你使用mysqli,你可以在获取数据之前使用set_charset或运行SET NAMES utf8
作为查询。