【发布时间】:2010-12-04 03:40:54
【问题描述】:
我正在使用 PHP 来处理来自各种来源的文本。我预计它不会是 UTF-8、ISO 8859-1 或 Windows-1252 以外的任何东西。如果不是其中之一,我只需要确保文本转换为有效的 UTF-8 字符串,即使字符丢失。 iconv 的 //TRANSLIT 选项能解决这个问题吗?
例如,此代码是否可以确保将字符串安全地插入到 UTF-8 编码文档(或数据库)中?
function make_safe_for_utf8_use($string) {
$encoding = mb_detect_encoding($string, "UTF-8,ISO-8859-1,WINDOWS-1252");
if ($encoding != 'UTF-8') {
return iconv($encoding, 'UTF-8//TRANSLIT', $string);
}
else {
return $string;
}
}
【问题讨论】: