在网页中使用 utf-8 无法正常工作 [重复]

Using utf-8 in an webpage isn't working properly [duplicate]

提问人:Torbjörn Lundberg 提问时间:10/7/2023 更新时间:10/7/2023 访问量:26

问:

我有一个在表上使用latin1_swedish_ci排序规则的 mysql 数据库。 我将在网页上展示这些数据。 我试图在显示结果的网页上使用 charset=utf8,但它给了我很多奇怪的字符,如?和其他代替瑞典语 å,ä,ö,chars。

我尝试使用不同的sql命令来更改要“打印”的数据。 结果都不好。(整理 f.e.)

我不是这个网站的原始编码员,字符集设置为 windows-1252。

它在使用此字符集 (windows-1252) 时有效,但每个本机字符 å,ä,ö 都需要在 html 代码中翻译/写为 å ,ä ö,才能使 html 代码中的字符串正确。

很多 ?使用 charset=utf-8 时

如果能得到一个解决方案,那就太好了。 要使latin1_swedish_ci mysql 表与使用 charset=utf-8 的网页一起工作,即。

在 sql 语句中使用 Collate。 像这个例子 选择 k latin1_german2_ci 作为 k1 从 T1 按 k1 订购;

MySQL UTF-8 Windows-1252 整理

评论

0赞 Rick James 10/8/2023
请参阅 stackoverflow.com/questions/38363566/ 中的问号...

答:

1赞 Vivick 10/7/2023 #1

在不同字符集之间进行转码的问题在于,这不是一个魔术。有些事情你不能做。但是,您可以简单地将整个数据库转码为更适合处理 UTF8 的 soemthing。

使用 WAMP(或简称为 PHPMyAdmin):

  1. 在左侧的资源管理器中选择数据库
  2. 单击“操作”选项卡
  3. 转到最底部并选择(或utf8_unicode_ciutf8mb4_unicode_ci)
  4. 选中所有表的选项
  5. 选中所有列的选项
  6. 执行
  7. 你已经准备好使用 utf8 了

否则,您可以按照如何在整个数据库中更改 CHARACTER SET(和 COLLATION?) 的答案中的说明进行操作,以获得纯 SQL 解决方案。

评论

0赞 Torbjörn Lundberg 10/8/2023
谢谢你的回答。我一直在考虑这个选项。以这种方式转置安全吗?没有数据损坏的风险?字符还会是瑞典语吗,包括 å、ä、ö 等?
0赞 Vivick 10/8/2023
如果需要,您可以随时在执行备份之前进行备份,还原字符集并整理更改,然后还原备份。因为它们在 unicode 表中,所以应该没问题。从有限的字符集到另一个不同的有限字符集时,您会遇到问题
0赞 Torbjörn Lundberg 10/8/2023
备份的好建议。这是必要的。有限的字符集是什么意思?这不是我的专长,但我热衷于更好地理解它。
0赞 Vivick 10/8/2023
Unicode 没有那么严格,但像 windows-1252 或 ASCII 这样的字符集在字符数量上非常有限