gpt4 book ai didi

php - 数据库编码问题?显示带问号的双引号和单引号

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:51 26 4
gpt4 key购买 nike

旧服务器数据库 = MySQL v4.0.21新服务器db = MySQL v5.0.45

我正在将应用程序移动到新服务器,并且复制了数据库。

该应用程序发送当天的议程,只要有双引号和单引号 "',它们就会显示为问号?

在它被移动到 ?The Horror of Race: HBO?s True Blood? 的服务器上出现这样的

这是在原始服务器应用程序构建时的样子:“The Horror of Race: HBO’s True Blood”

带 phpmyadmin 的数据库截图 http://grab.by/2EsU (原始服务器 mysql v4.0.21)和 http://grab.by/2EtN (新服务器mysql 5.0.45)

存储数据的表的屏幕截图:http://grab.by/2Et2 (它只发生在 body 栏)

新服务器表中的数据截图:http://grab.by/2Etb (您会注意到问号吗?)

原始服务器表中的数据截图:http://grab.by/2Etl

该应用程序是用 PHP 构建的,它打印正文,如 nl2br($body);

字符串在插入数据库表之前存储在 $body 变量中,如下所示:$body=addslashes($_POST['body']);

关于它为什么显示的任何帮助?标记代替双引号和单引号,会很有帮助 - 非常感谢。

最佳答案

这很可能是由于字符编码设置不同所致。这可能在几个地方有效。我建议您登录到两台服务器并执行以下操作:

mysql> show variables like '%character%';
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\Servers\MySQL\MySQL_5_1_36\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.00 sec)

看看你是否发现那里有什么不同。例如,如果新服务器的默认连接字符集不同,您可能会得到这些结果。

您还应该确保列的字符编码设置:执行 SHOW CREATE TABLE <table-name>并检查字符集在列级别是否仍然相同mysql>

编辑或者,正如 Martin 在评论中指出的那样,您可能正在处理以您未预料到的编码方式编码的 SQL 转储。这里有一些关于它的更多信息:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_default-character-set .在这种情况下,您可以尝试使用像 iconv ( http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1.html ) 这样的工具重新编码转储文件

关于php - 数据库编码问题?显示带问号的双引号和单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2329161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com