text - Haskell、Char、Unicode 和土耳其语

标签 text unicode haskell localization internationalization

对于 Char 数据类型,如何指定在 toLower 和 toUpper 函数中使用土耳其语 i 而不是英语 i?

最佳答案

text 和 text-icu 包

截至 2011 年,您最好的选择是使用 text包,以及 the Text ICU packagetoLower 函数,它支持由语言环境参数化的 Char 操作,

来自this example :

import Data.Text (pack, unpack)
import Data.Text.ICU (LocaleName(Locale), toLower)

main = do
  let trLocale = Locale "tr-TR"
      upStr    = "ÇIİĞÖŞÜ"
      lowStr   = unpack $ toLower trLocale $ pack upStr
  putStrLn $ "toLower " ++ upStr ++ " gives " ++ lowStr

运行这个:

> toLower ÇIİĞÖŞÜ gives çıiğöşü

虽然此示例在 String 之间进行转换,但您也可以仅将数据保留为 text 格式。

关于text - Haskell、Char、Unicode 和土耳其语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412577/

相关文章:

parsing - 如何在 Julia 中高效读取 xyz 格式的文本文件?

用于标记英文文本的正则表达式

c++ - C++ 上的 UNICODE (fread) 读取文件错误

opengl - 如何在 Haskell 中调用 Ptr GLubyte -> IO() 类型的函数

haskell - 在处理程序中提取数据库字段值

haskell - 当什么都没有改变时,如何阻止 GHC 重新编译模块?

excel - 使用不同行上的 VBA、数据和变量从 .txt 文件中解析数据

java - 对齐 TextView 中的部分文本

来自 cStringIO 的 Python "\x00"填充/utf-32 字符串

Javascript unicode字符串,中文字符但没有标点符号