外国字母出现

时间:2012-10-01 16:42:09

标签: mysql character-encoding

我有一个包含多个关键字翻译的数据库。

我正在访问这些翻译,并且许多法语单词都有不会出现在英语中的字符。例如,重音e。 (我稍后将翻译成其他语言,我相信会出现同样的问题。)

请记住这些翻译来自MySQL数据库,有什么方法吗?我尝试将字符集从utf-8更改为iso 8859-1,但这没有任何区别。

任何指导都会受到热烈欢迎! 感谢

3 个答案:

答案 0 :(得分:0)

继续http://msdn.microsoft.com/en-us/library/ms186939.aspx,我会说

VARCHAR(n)CHARSET ucs2 是最接近的等价物。但是我没有看到很多人使用它,更常见的是人们使用:

VARCHAR(n)CHARSET utf8 据我所知,字符集utf8和ucs2允许相同的字符,只有编码是不同的。所以任何一个都应该工作,我可能会选择后者,因为它经常被使用。

MySQL的unicode支持存在一些限制,可能适用于您的用例,也可能不适用。有关MySQL的unicode支持的更多信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html

复制自:mysql equivalent data types

答案 1 :(得分:0)

我将客户端编码设置为UTF-8和数据库排序规则utf8_bin。 你如何在数据库中准确插入单词?你是自动翻译单词并插入它们还是手工完成。 您还可以将连接排序规则设置为UTF8。

-------- UPDATE -------

要在PHP中强制执行字符集连接,只需在连接后添加以下内容:

mysql_query('SET NAMES utf8');

如果它不起作用,请在脚本中尝试将字符集强制为utf8。

mysql_query('SET CHARACTER SET utf8');

在尝试对数据库进行任何调用之前,请记住清理所有数据并在修改后重新插入。

答案 2 :(得分:0)

ISO 8859-1实际上在字符集中有一个重音e。从它的声音来看,你的数据库中有UTF8字符,但是那些讨厌的外形字符在结果中很好地制作成纯英文字符。您可以使用coallation执行此操作。将结果整理为latin1_swedish_ci

我相信在vars中还有一个条目你可以设置,所以你不必在每个查询中指定合并,但我懒得查找它:p