0

我正在失去重音字符。

我从 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>

我自己想通了,请参阅下面的答案。谢谢你们每一个人的帮助!

4

3 回答 3

1

在连接到数据库之前使用 Utf8_general_ci 更改表的排序规则:

mysql_set_charset("utf8");

我认为这可以解决您的问题。

于 2012-03-19T03:46:47.493 回答
1

这修复了它:

$meta=iconv('UTF-8','CP1252//TRANSLIT',$meta);

我之前不知道 iconv,我以为只有 mb_strings 可以使用,但 iconv 效果很好。

于 2012-03-19T04:25:12.183 回答
0

也许您的 MySQL 服务器的默认字符集是 UTF-8。试试这个:
在您的 MySQL 连接详细信息之后插入以下查询:

mysql_query("SET NAMES latin1");
于 2012-03-19T04:12:36.703 回答