我正在丢失重音字符。
从PHP我下载一个使用UTF8的xml文件,而我的PHP脚本使用Latin1。我无法将UTF8转换为Latin1。
我试过这个:
$meta=mb_convert_encoding($meta,'CP1252','UTF-8');
和
$meta=mb_convert_encoding($meta,'UTF-8');
$meta=mb_convert_encoding($meta,'CP1252','UTF-8');
但无论哪种方式,重音字符都会被破坏并变成2个字符。
输入:
<title>First book of zoölogy</title>
输出:
<title>First book of zoo?logy</title>
我自己想出来了,请看下面的答案。谢谢大家的帮助!
答案 0 :(得分:1)
更改表的排序规则Utf8_general_ci并在连接数据库之前使用:
mysql_set_charset("utf8");
我认为这可以解决您的问题。
答案 1 :(得分:1)
这解决了它:
$meta=iconv('UTF-8','CP1252//TRANSLIT',$meta);
之前我不知道iconv,我以为只有mb_strings可以使用,但iconv工作得很好。
答案 2 :(得分:0)
你的MySQL服务器的默认字符集可能是UTF-8。试试这个:
在MySQL连接详细信息之后插入以下查询:
mysql_query("SET NAMES latin1");