为啥MySql的表记录中有些中文显示问号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥MySql的表记录中有些中文显示问号相关的知识,希望对你有一定的参考价值。

如题,“陈煜劼”在表中会变成“陈煜??”就一个“劼”字没办法显示。。。
求高手解答,急切~在线等。
数据库编码用的是GB2312
如果不对,能不能告诉我用哪种编码谢谢啦~~~~~
UTF-8不行。。。

大家请看清问题描述呀,我遇到的问题是极少部分中文无法正常显示。。。比如“衎”,“劼”这两个字就没有办法正常保存到数据库和显示,而其他大部分中文都可以。

  这是字符集不一致造成的。
  修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
  Windows平台
  windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可 以直接在这个文件里面加上
  default-character-set=gbk #或gb2312,big5,utf8
  然后重新启动mysql
  service mysql restart 或 /etc/init.d/mysql restart
  或用其他方法重新启动,就生效了。
  Unix(linux)平台
  linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
  find / -iname my.cnf
  在这个文件里面加上
  default-character-set=gbk #或gb2312,big5,utf8
  然后重新启动mysql
  net stop mysql
参考技术A 用UTF-8
如果是数据库中有乱码,就是录入数据时不是GB2312的。这只能重新修改记录了。如果只想输出时页面正常显示的话,那么就采用和你页面标准一直的编码。比如你页面是GB2312的话,就如楼下说的mysql_query(set names gb2312);
如果页面是utf-8就
mysql_query(set names utf8);本回答被提问者采纳
参考技术B 不需要UTF-8,不然这么多gb2312的网站都得完蛋了。
链接数据库后。
mysql_query(set names gb2312);
这就设置了输出的编码。
参考技术C 那是乱码,建表的时候你可以指定编码格式。

为啥 Facebook 帖子中的特殊字符显示为问号?

【中文标题】为啥 Facebook 帖子中的特殊字符显示为问号?【英文标题】:Why are special characters displayed as question marks in Facebook posts?为什么 Facebook 帖子中的特殊字符显示为问号? 【发布时间】:2020-05-04 11:16:30 【问题描述】:

当我们共享指向我们的 magnolia 网站(在 Tomcat 上运行)的链接时,变音符号显示为问号。 页头有<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,响应头有内容类型text/html;charset=UTF-8和内容编码gzip。什么可能导致 Facebook 上的字符编码错误?

【问题讨论】:

可能他们不是实际上没有正确编码为UTF-8?仅仅因为您他们是通过Content-Type,并不会自动使如此。 @CBroe,如何检查实际编码?我导出了页面的JCR-Node,第一行指定了编码:<?xml version="1.0" encoding="UTF-8"?> 您有显示问题的实际示例 URL 吗? Facebook 共享调试器生成以下内容:curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "https://www.mieterverband.ch/mv/politik-positionen/news/2019/Jetzt-w%C3%A4hlen-f%C3%BCr-mieterfreundliche-Mehrheiten-in-Bern.html",这会产生没有内容的响应。如果我遗漏了Range 字段,我会收到消息正文。所以过去Facebook可以爬取网站的时候,可能是编码错误,但现在问题似乎是Facebook无法爬取页面。 它究竟在哪里生成这个 cURL 代码?不确定它会从哪里获得该字节范围。该 URL 返回一个包含标题 Content-Length: 12298 的响应,所以我看不出从哪里可以得到请求 bytes=0-524288 开头的想法。 【参考方案1】:

最后我发现,我的问题与字符编码无关,而与 Facebook 爬虫请求有关。 Facebook Sharing Debugger 真的让我走上了正轨。核心问题是,magnolia 缓存不支持部分请求。

编辑: 来自 Facebook 的 HTTP 范围请求是一个已知问题,请参阅 https://documentation.magnolia-cms.com/display/DOCS62/_Known+issues#id-_Knownissues-HTTPrangerequestsfromFacebookdon%27twork

【讨论】:

以上是关于为啥MySql的表记录中有些中文显示问号的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的VS2010数据库输入的中文显示问号是怎么回事啊

从数据库中取出的中文为啥是问号

MySql:20000行记录中只显示5行,为啥?

为啥navicat导入excel表之后汉字变成了问号?

为啥 Facebook 帖子中的特殊字符显示为问号?

当尝试在 adb shell 中输入问号时,它显示为 d,这是为啥呢?