我的网站使用的是iso 8859 1字符集
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />当用户发布汉字时,它将以 0 3 2 0; 2 9 0 9;的形式保存到数据库中,检索时将作为汉字输出。
我需要将我的网站设置为UTF-8
当用户发布汉字时,它将作为一些时髦的字符保存在mysql中,检索时,有些字符是正确的,有些字符是错误的。
我的问题是,在我设置为UTF-8之后,如何让mysql将文本保存为#2 0 3 2 0; 2 9 0 9;而不是时髦的字符。
我尝试使用htmlentities。它不能正常工作。
我的脚本正在使用
$message = htmlentities(strip_tags(mysql_real_escape_string($_POST['message']),'<img><vid>')); 当它被保存到mysql时,它就像这样,当它被检索到被显示时,它就像这个?-是之前存储在mysql中的时髦字符
发布于 2010-11-10 19:21:58
我已经看到了很多与编码相关的问题,的所有者应该在发布之前谷歌一下
一般检查清单:
使用utf-8 mysql --default-character-set=utf8
mysql --default-character-set=utf8
mysqli_set_charset到utf-8
格式
发布于 2010-11-10 19:38:46
您应该遵循ajreal关于将编码设置为UTF-8的建议。
但是,从声音上看,您可能已经在数据库中存储了数据,这些数据必须进行转换。
如果您的网站是统一的iso-8859-1,那么最有可能的中文字符存储为HTML字符实体,这意味着数据不会存储错误编码,转换字符集应该不会造成问题。如果执行说明后发现字符显示不正确,可能是因为存储的文本编码错误,在这种情况下,可以采取一些步骤来纠正这种情况。
现有列的字符集可以使用如下语法进行转换
ALTER TABLE TableName MODIFY ColumnName COLUMN_TYPE CHARACTER SET utf8 [NOT NULL]其中,COLUMN_TYPE是CHAR(n)、VARCHAR(n)、TEXT之一,方括号表示NOT NULL是可选的。
编辑
“我的问题是,在我设置为UTF-8之后,如何让mysql将文本保存为#2 0 3 2 0; 2 9 0 9;而不是时髦的字符。”
这可能最好用您的脚本语言而不是MySQL来解决。如果使用PHP,您可以使用htmlentities()来实现此目的。
发布于 2010-11-13 09:38:14
如果您已经在使用另一种编码后尝试转到UTF8,请尝试以下步骤:
建立数据库连接后,在tables
如果您完成了所有这些步骤,那么一切都应该正常工作。
https://stackoverflow.com/questions/4143853
复制相似问题