将奇数字符编码转换回utf-8

时间:2013-01-21 15:07:25

标签: php utf-8 character-encoding

我有一个包含奇怪字符的字符串数据库,例如:

Design Tattoo Ãœbungshaut

Mehrflächiges Biozid Reinigungs- & Desinfektionsmittel

根据我的理解,Üä的位置应该是ÜÃ。{/ 1}}。

是否有标准功能可以将这些多个字符恢复为正确的UTF-8形式?

UTF-8 PHP我遇到$url = iconv('utf-8', 'iso-8859-1', $url);似乎已接近但却不尽如人意。也许我有错误的参数,但无论如何只是想知道这个问题是如何知道的,以及是否有一个已建立的修复?

原始数据来自电子商务系统CubeCart,似乎没有问题将其转换回普通文本FYI。

2 个答案:

答案 0 :(得分:0)

作为示例显示的数据是错误地解释为ISO-8859-1(或windows-1252)的UTF-8编码数据。问题组合实际上是“Ü”和“ä”(“Ā”没有出现在德语中)。显然你需要做的是将数据读取为UTF-8并以这种方式显示,而不是转换它。

答案 1 :(得分:0)

如果数据库和输出是utf-8,可能是因为你没有使用utf-8作为客户端字符集。

如果你使用mysqli,你可以在获取数据之前使用set_charset或运行SET NAMES utf8作为查询。