我在美国我的网页上有以下内容:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我的MYSQL表是MyISAM latin1_swedish_ci
但是当有人填写带有外来字符的表单时,它会作为垃圾存储在MySql中。一个例子是带有重音的e等等 - 这在美国英语中通常不常用。即使有人使用了一个奇怪的撇号,它也会变成垃圾:
国家
变成了:
nation’的
我在那里使用常规撇号,但你明白了。外来字符变成3个垃圾字符。请帮忙! TIA
答案 0 :(得分:6)
将文档标题更改为
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
或 - 更好 - 将表格的字符集更改为UTF-8。要做到这一点并非完全无足轻重,只需更改表的排序规则就行不通。 This SO question可能会给出一些指示。
答案 1 :(得分:0)
在我看来,输入数据库的数据是utf8。要把它放到表中,它必须转换为latin1(因为这是你的列的字符集),这可以产生一个最多三个latin1字符。
Pekka只是打败了我 - 他的解决方案应该可以解决这个问题。
答案 2 :(得分:0)
我记得SQlServer中的相同案例希望它对这个问题有帮助。
它有两种数据类型varchar [8 bit]和NVarChar [16 bit]。
现在使用varchar你不能存储16位脚本字符,如Chines,Indic等,你必须使用NVarchar,即可以存储16位字符的数据类型。
答案 3 :(得分:0)