代码之家  ›  专栏  ›  技术社区  ›  Andrey Tarantsov

SQLite是否能够处理非英语语言环境?

  •  1
  • Andrey Tarantsov  · 技术社区  · 14 年前

    Google Toolbox for Mac 将几个SQLite内置函数(LOWER/UPPER,比如GLOB)替换为能够更好地处理字符串区域设置的自己的版本。

    所以,向所有有过SQLite经验的人提出一个问题:在SQLite中,您是否遇到过非英语语言环境的问题?一个人真的需要做些什么来正确处理非英语字母表吗?如果按原样使用SQLite API,会出现什么样的问题?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community CDub    4 年前

    似乎SQLite根本不关心语言环境。我发现唯一提到语言环境的地方就是语言环境的计算 datetime('now')

    升级版

    SQLite cocumentation的一些引用:

    one :

    当SQLite比较两个字符串时,它使用排序序列或排序函数(两个字代表同一事物)来确定哪个字符串更大或两个字符串是否相等。SQLite有三个内置的排序函数:BINARY、NOCASE和RTRIM。

    • 二进制-使用memcmp()比较字符串数据,而不考虑文本编码。
    • RTRIM-与二进制相同,只是忽略了尾随空格字符。

    two :

    下(X)

    上(X) upper(X)函数返回输入字符串X的一个副本,其中所有小写ASCII字符都转换为大写等效字符。

    three :

    SQLITE启用 International Components for Unicode 或者将SQLite的“ICU”扩展添加到构建中。


    不管怎样,您都需要自己编译sqlite。