我目前在将特殊字符(®&©)保存到mySQL数据库时遇到问题.
在本地堆栈(我的开发机器的本地堆栈)上,操作平稳运行,并且在前端输入的内容将保存为预期的内容.
保存到数据库时,在集中式服务器上使用相同的前端代码,角色将继续使用其他字符保存为®.
查看前端的记录时,这不是问题,因为它会反转它的功能并正确显示.
问题来自另一个使用相同数据库并且不做任何改动的独立系统,因此看起来像是®而不是简单的®.
我混淆的原因是它似乎在我的本地堆栈上工作,但不在集中式服务器上.
我正在寻找关于在我的本地服务器配置上可能导致什么问题的想法.
提前致谢
标记
最佳答案
@Pranav Hosangadi(感谢)涵盖三个方面,以检查编码的一致性.以下解决方案增加了这一点.也许值得考虑(一种变体)@Soaice Mircea的答案(也谢谢)对于某些情况,这个答案并不能解决问题,尽管当我能够重现并找到问题的解决方案时,这不是必需的. @Pranav的思路似乎对这个问题是成功的,因为它是关于在任何地方使用一个字符集而不是特定字符集的一致性.
五件事要做:
>确保数据库字符集和表格在整个过程中使用相同的字符集,例如在phpmyadmin中检查它,注意和下面使用的字符集
>使用带有数据库字符集的php header()函数,例如:
header('Content-Type: text/html; charset=latin1_swedish_ci');
>在html标题中插入元标记,例如:
>在表单标记中添加charset-accept
>设置mysql连接的charset例如:
$con = mysql_connect("localhost","test","test");
mysql_set_charset ( "latin1_swedish_ci",$con );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。