我试图将英文和中文存储在一个MySQL表中的不同字段中。
英语为 lang1
,中文为lang2
。
我为表字符集尝试了UTF8_general_ci和UTF8_unicode_ci。
输入的Html页面也使用UTF8。但由于某种原因,汉字回来了???。任何人都知道为什么会发生这种情况?我复制并粘贴了UTF8 page as well中的汉字。
编辑: 请求输入页面的标题:
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
页面本身设置:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
编辑: 看起来在将字段lang2设置为utf8_general_ci后,它正确地存储字符。我将表格和数据库排序设置为utf8,但错过了特定字段。
答案 0 :(得分:2)
这里是中文日文韩文的mysql字符集
+--------------------+---------------------------+
| CHARACTER_SET_NAME | DESCRIPTION |
+--------------------+---------------------------+
| big5 | Big5 Traditional Chinese |
| cp932 | SJIS for Windows Japanese |
| eucjpms | UJIS for Windows Japanese |
| euckr | EUC-KR Korean |
| gb2312 | GB2312 Simplified Chinese |
| gbk | GBK Simplified Chinese |
| sjis | Shift-JIS Japanese |
| ujis | EUC-JP Japanese |
+--------------------+---------------------------+
如果你使用UTF-8,请确保这是你的页面传递给数据库的charset。然后你可以将htmlentities()设置为utf8_encode(),所以一切都在说同一种语言。
您还可以尝试修复将中文数据存储为二进制的字段,如本文http://www.dodoskido.com/archives/003040-mysql-chinese-character-fix-or-how-to-make-utf8-work-for-you-pages.html
所示答案 1 :(得分:2)