【发布时间】:2018-01-24 17:54:24
【问题描述】:
upper() 函数似乎不会将 ë 等法语字符大写。
如何在使用大写时为法语字符添加重音支持?
-- Returns 0 rows
SELECT * FROM TABLE
WHERE UPPER(NAME) = "NOËLLE";
我们使用的是 Informix 11.10,语言环境设置为 en_us.8859-1。
【问题讨论】:
-
您使用的是哪个版本的 Informix?数据库配置为使用哪个代码集(区域设置)?您的数据输入的是哪个代码集(区域设置)?当我使用配置了
DB_LOCALE="en_us.utf8"(并且CLIENT_LOCALE也设置为相同)的数据库进行测试时,UPPER 函数适用于 UTF-8 数据。在另一个带有DB_LOCALE=fr_fr.8859-15的数据库中,UPPER 函数也可以在 885015 个字符上正常工作。复制问题中的文字没有帮助;它采用 UTF-8 格式——但这可能是也可能不是您正在使用的代码集。该映射适用于 NVARCHAR 和 VARCHAR 列。 -
JFTR:我在运行 Informix 12.10.FC9W1 的古董 Linux 机器(我认为是 RedHat 5.3)上进行了测试(不是古董,虽然不是最新版本)。我是从 Mac 上的 Unicode 终端驱动它的。从 UTF-8 数据创建 8859-15 重音数据很有趣——锐利的工具和
tr的知识完成了它,但如果我对iconv足够了解,它可能会更轻松地完成这项工作。 -
我们使用的是 Informix 版本 11。我们所有数据库上的代码集都是 en_us.8859-1。
-
11.10 或 11.50 或 11.70?第一次和最后一次之间有相当长的时间。我会查看
en_us.8859-1数据库,看看我发现了什么。 -
@JonathanLeffler 感谢您的帮助。它是 11.10 版
标签: sql ascii informix extended-ascii