【问题标题】:mysql char length for utf8_swedish_ciutf8_swedish_ci 的 mysql 字符长度
【发布时间】:2014-07-22 14:01:46
【问题描述】:

我用这个字段创建了一个表:

chr CHAR(1)

字符集和整理是: 默认字符集=utf8 COLLATE=utf8_swedish_ci

好吧,即使该字段只能包含一个字符,如果我插入如下值:

insert into tbl values ('ö');

那么该字段的长度将返回大于1。因此,sql:

select length(chr) from tbl where id = 1

return 2. 为什么?我知道字符集/排序规则的事情可能是一个真正的痛苦。我从一开始就没有 utf8_swedish_ci,这不好,因为我无法按字母顺序排序(ö 是在 o 之后获取的,这是错误的,因为字符 ö 是字母表中的最后一个)。 所以我想我最好继续使用 utf8_swedish_ci。但后来这件坏事发生了。任何人都知道如何解决这个问题?提前致谢。

【问题讨论】:

    标签: mysql sql character-encoding


    【解决方案1】:

    MySQL length 函数以字节为单位返回长度;您需要char_length 来获取字符数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      相关资源
      最近更新 更多