gpt4 book ai didi

mysql - 显示重音字符的问题,适用于其他数据库

转载 作者:行者123 更新时间:2023-11-29 06:47:53 30 4
gpt4 key购买 nike

我有三个数据库环境,MAMP,测试服务器,实际服务器。测试服务器只是一个不使用其数据库的旧站点。

在 MAMP 和测试服务器上,我需要显示的重音字母显示正常(即字体不是问题)í á ñ,但是在实际服务器上我遇到了那些可爱的黑色问题标记方 block ����。

所以我猜它是字符集并对其进行了调查,但所有数据库都具有相同的字符集 latin1_swedish_ci

我使用描述的方法检查了设置 in this post然后在 SQL 中运行 SET NAMES 'utf-8'; 但问题仍然存在。

我还更改了数据库和所有单个表上的字符集,但这似乎没有效果。

我能够影响浏览器解释文本的方式的唯一方法是将 META 更改为 latin1,实际上我正在使用 ini_set('default_charset', 'utf-8');。这里的问题是它用各种随机符号替换了 �。

谁能帮我找出原因?我没主意了。

我正在使用 SublimeText2,这可能是问题所在吗?我试过用 UTF 编码保存它,但也没有太大效果。

最佳答案

如果您看到 � UNICODE REPLACEMENT CHARACTER,这意味着数据被解释为 UTF-8(或其他 Unicode 编码)但不是实际上有效的 UTF-8 .覆盖您的浏览器以使用其他编码(在大多数浏览器中查看菜单 → 编码)来解释数据,以弄清楚数据是什么实际编码的。一旦您弄清楚了:

  1. 更改数据的编码以匹配声明的编码;通过设置数据库连接编码( mysql_set_charsetSET NAMES ... 或类似的,取决于您的 API)来做到这一点。各个列的排序规则和编码无关紧要,因为 MySQL 会即时将编码转换为连接编码。
  2. 通过设置正确的 Content-Type 来更改声明的编码HTTP header 和/或 <meta>标签; ini_set('default_charset', ...)会这样做,但网络服务器可能会覆盖它。使用浏览器工具检查实际的 HTTP header 。

首先确保你数据库中的数据确实没问题,不是垃圾。如果您需要更多信息,请参阅 What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With TextHandling Unicode Front To Back In A Web App .

关于mysql - 显示重音字符的问题,适用于其他数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17495369/

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