【问题标题】:MySQL sorting wrongly with danish charactersMySQL 用丹麦语字符错误排序
【发布时间】:2023-03-23 16:23:02
【问题描述】:

丹麦语字母顺序要求 abc... 在 æ、ø 和 å 之前。在我的 MySQL 数据库中,当我按字母顺序排序时,它会显示为

Øresund
Åse
Alfa

这很奇怪。

服务器连接排序规则是 utf8_general_ci
数据库排序规则是 latin1_swedish_ci
表排序规则是 utf8_danish_ci
列排序规则是 utf8_danish_ci

不应该在表/列上设置排序规则覆盖更高级别的排序规则吗?

我的网站都是 UTF8,当我从网站输入文本时,它又可以正常输出了。但是当我在phpmyadmin中查看文本时,字符显示错误。

我已将文件 editschool.php 的内容粘贴到此处:http://pastebin.com/pv8u0BDj

【问题讨论】:

  • 数据库排序规则的优先级高于表或列排序规则。进行备份并更改数据库排序规则
  • “当我在 phpmyadmin 中查看文本时,字符显示错误” - 你的意思是在 phpMyAdmin 中输入网站的内容为 'Øresund' 'Ã~resund'(或类似的东西)?
  • @Mihai 我害怕那个。是时候思考了……
  • @GordThompson 没错!但它看起来没问题,当它出现在一个 php 页面上时......
  • @Mihai 但是我的数据库中有其他表,不是丹麦语...

标签: mysql character-encoding


【解决方案1】:

我终于成功了。其中一项或两项都解决了问题:

1。添加 mysqli_set_charset($connection,"UTF8");到我文件的顶部,

  1. 强制我的 FTP 客户端以 UTF-8 格式上传。

编辑:我现在认为上述选项 2 是最可能的,这就是为什么我通过了选项 1。

【讨论】:

  • 删除utf8_decode。如果您收到Ørestad,那么您有 Mojibake 并且没有到处都有 ut8。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多