首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存到mysql时出现UTF-8问题

保存到mysql时出现UTF-8问题
EN

Stack Overflow用户
提问于 2010-11-10 19:14:35
回答 5查看 7.1K关注 0票数 1

我的网站使用的是iso 8859 1字符集

代码语言:javascript
复制
<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。它不能正常工作。

我的脚本正在使用

代码语言:javascript
复制
$message = htmlentities(strip_tags(mysql_real_escape_string($_POST['message']),'<img><vid>')); 

当它被保存到mysql时,它就像这样,当它被检索到被显示时,它就像这个?-是之前存储在mysql中的时髦字符

EN

回答 5

Stack Overflow用户

发布于 2010-11-10 19:21:58

我已经看到了很多与编码相关的问题,的所有者应该在发布之前谷歌一下

一般检查清单:

使用utf-8 mysql --default-character-set=utf8

  • php

  • 连接到utf-8mysql --default-character-set=utf8

  • php mysqli_set_charset到utf-8

  • html编码到utf-8

  • putty,emac客户端...将采用utf-8

格式

票数 5
EN

Stack Overflow用户

发布于 2010-11-10 19:38:46

您应该遵循ajreal关于将编码设置为UTF-8的建议。

但是,从声音上看,您可能已经在数据库中存储了数据,这些数据必须进行转换。

如果您的网站是统一的iso-8859-1,那么最有可能的中文字符存储为HTML字符实体,这意味着数据不会存储错误编码,转换字符集应该不会造成问题。如果执行说明后发现字符显示不正确,可能是因为存储的文本编码错误,在这种情况下,可以采取一些步骤来纠正这种情况。

现有列的字符集可以使用如下语法进行转换

代码语言:javascript
复制
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()来实现此目的。

票数 2
EN

Stack Overflow用户

发布于 2010-11-13 09:38:14

如果您已经在使用另一种编码后尝试转到UTF8,请尝试以下步骤:

建立数据库连接后,在tables

  • Configure MySQL上运行ALTER TABLE TABLE NAMES to CHARACTER SET UTF8 TO default to UTF8,或者只运行SET NAMES UTF8查询。您只需在每个连接上运行一次,因为它会将连接设置为UTF8。

  • 在将内容传递到浏览器之前会输出一个UTF8标头。header(' content-type : text/html;charset=utf-8');

  • Include页面上的UTF8内容类型元标记。meta http-equiv="Content-Type“content="text/html;meta http-equiv=”Content-Type“text/html;meta http-equiv=”Content-Type“meta http-equiv=”Content-Type“meta http-equiv=”Content-Type“meta http-equiv”text/html;meta

如果您完成了所有这些步骤,那么一切都应该正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4143853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档