iconv()音译检测到非法字符

时间:2014-09-03 21:23:52

标签: php mysql transliteration

使用PHP的iconv()函数时,我遇到了一个奇怪的情况。我有一个MySQL数据库,其中包含几个包含法语(和其他欧洲语言)字符的记录。例如:

Saint-Côme-du-Mont

我正在尝试编写一个函数来将这些转换为友好的网址,然后转向iconv()。问题是,如果我使用音译功能,我会收到以下错误:

Notice: iconv(): Detected an illegal character in input string in...

产生问题的代码是:

$url = iconv("utf-8", "us-ascii//TRANSLIT", $string); // TRANSLIT does the whole job

但是,如果我使用//IGNORE,我会得到以下输出:

Saint-Cme-du-Mont 

MySQL中的字段使用``collat​​ion,并以纯文本格式存储。我已尝试使用utf8_encode(),但存在相同的行为。

如果我在输入字符串上使用mb_detect_encoding(),我会得到UTF-8,因此它似乎正在以正确的格式接收字符串。

我如何规避通知,仍然执行translit操作?

0 个答案:

没有答案