【问题标题】:Store the city name Łódź in MySQL table将城市名称 Łódź 存储在 MySQL 表中
【发布时间】:2017-10-03 15:29:11
【问题描述】:

我目前在 MYSQL 中有一个地址表,其字符集设置为“utf8”,排序规则设置为“utf8_unicode_ci”。存在一个列名 Address 并且我正在尝试将城市名称 Łódź 存储到 Address 列中。我尝试在 SQLyog Community 64 上直接键入表格,以及使用工具 MYSQL for Excel,但它一直显示错误“字符串值不正确”。

我尝试将字符集设置为“utf8mb4”,将排序规则设置为“utf8mb4_unicode_ci”,但仍然出现同样的错误。

关于如何设置字符集和排序规则以存储 Łódź 的任何帮助?这个城市名称只是众多例子之一,接下来我可能还会遇到其他类似的角色。通用字符集可以使用什么?

【问题讨论】:

  • “我正在尝试将城市名称 Łódź 存储到表中” - 如何您尝试这样做?你还没有告诉我们任何试图插入数据的内容。
  • 您不应该只为 MySQL 设置字符集,还要确保您用于处理数据库的程序也使用该字符集。
  • 同时执行SHOW CREATE DATABASE your_dbSHOW CREATE TABLE table查看数据库和表中使用了什么字符集。如果错误,以下是如何更改 DB 和表的字符集:stackoverflow.com/questions/6115612/…
  • 嗨@MichaelO.,查询结果如图CREATE DATABASE for_cq_testing /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */
  • 如果您使用的是 ODBC 驱动程序,请检查它是否选择了 UTF-8 选项。

标签: mysql database collation utf character-set


【解决方案1】:

utf8utf8mb4 对波兰语字符同样有效。)

您没有提供有关字符流的足够详细信息,但以下内容应该为 MySQL 提供调试:

Trouble with utf8 characters; what I see is not what I stored

正确存储时,Łódź 的 utf8(或 utf8mb4)编码为十六进制 C581 C3B3 64 C5BA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2012-03-07
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多