1

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

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

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

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

4

3 回答 3

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等效数据类型

于 2012-10-01T16:44:55.740 回答
0

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

- - - - 更新 - - - -

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

mysql_query('SET NAMES utf8');

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

mysql_query('SET CHARACTER SET utf8');

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

于 2012-10-01T16:48:31.317 回答
0

那么 ISO 8859-1 实际上在字符集中有一个重音 e。听起来,您的数据库中有 UTF8 字符,但是结果中那些讨厌的外来字符不能很好地变成纯英文字符。你可以用collat​​ion做到这一点。将您的结果整理成类似latin1_swedish_ci的内容。

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

于 2012-10-01T16:51:36.843 回答