似乎当我向我的数据库添加任何特殊字符(如©和®)时,它会保存它,包括这个字符:Â,所以它像这个©一样保存它现在越来越多。
当我保存数据时,我可以认为数据库正在做这件事(但这似乎只是目前正在发生的事情),也许是因为浏览器?由于我在将数据保存到数据库时不会对数据执行HTMLEncode操作,但可能并不是因为我无法亲自重现该问题,所以我想知道其他人是否也遇到了同样的问题?
你认为是web浏览器在做这个吗?也许是因为通过jQuery提交表单而导致的?造成这种情况的罪魁祸首可能是什么?
发布于 2012-07-10 01:57:04
这是由不匹配的编码引起的,通常应用程序的一部分使用iso-8859-1,另一部分使用utf-8
检查您的数据库和单个表定义、网页内容编码和表单编码。确保它们始终使用相同的编码。我们使用utf-8做任何事情,端到端。
我们使用的是MySQL,而不是SQL Server,所以我不知道具体细节。对于MySQL,我们的DDL文件定义表的结尾通常是这样的
SOMEDATA VARCHAR(100),
INDEX USER_ID
)
engine = InnoDB
default character set utf8
collate = utf8_general_ci和包含在所有/生成的页面中的公共标头中
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">在<form>标记中,您可以显式设置accept-charset
<form accept-charset="utf-8" (etc)>请在此处查看这个不完全相关的question
https://stackoverflow.com/questions/11400390
复制相似问题