代码之家  ›  专栏  ›  技术社区  ›  ilija veselica

MySQL db中的克罗地亚变音符号(utf-8)

  •  3
  • ilija veselica  · 技术社区  · 15 年前

    Diacritic signs http://img98.imageshack.us/img98/3383/dijakritickiznakovi.gif


    LINK )
    最后一行显示了数据库中存储的内容。
    数据库表的排序规则为 utf8_unicode_ci .
    我想db中的符号不应该像我的例子中那样? 当从数据库加载时,它们在页面上正确显示,但utf-8表并没有从给定链接显示它们。即使我看对了,也许其他人不会?

    2 回复  |  直到 15 年前
        1
  •  4
  •   djn    15 年前

    设置MySQL表字符集是不够的-您还应该注意为客户机、连接和结果设置正确的字符集,默认值可能因服务器而异,这使得数据库不便于移植:移动到另一台服务器时,相同的数据库内容可能会以不同的方式显示。

    我已经将斯洛文尼亚语文本存储到MySQL中一段时间了,这对我来说很有用:

    • 连接后的第一件事应该是发出“ SET NAMES utf8 “质询
    • 确保存储的字符串是utf-8:如果从网页表单获取字符串,请确保该页面是utf-8
    • 请注意您使用什么工具在线浏览/编辑数据库内容:PhpMysqlAdmin绝对不安全。

    希望这有帮助。

        2
  •  3
  •   bobince    15 年前

    您似乎试图在数据库中存储HTML编码的字符串。不要这样做,这只会破坏您执行字符串操作(如可靠搜索)的能力。您应该能够将原始UTF-8编码字符存储为数据库中的字节。

    您不会说您正在使用什么环境读取数据库,也不会说您如何在底部获得不正确的字符串(即使用ISO-8859-1编码读取的UTF-8字节)。如果它们出现在您的网页中(并且您在标题和/或中指定了UTF-8 <meta> 标签),你大概就在那里。