Haskell语言学习笔记(89)Unicode UTF8
unicode-show
$ cabal install unicode-show
Installed unicode-show-0.1.0.2
Prelude> :m +Text.Show.Unicode
Prelude Text.Show.Unicode>
unicode-show 这个库可用于向控制台窗口输出 Unicode 字符。
Prelude Text.Show.Unicode> ("Хорошо!",["哈斯克尔7.6.1的力量","感じる"])
("\1061\1086\1088\1086\1096\1086!",["\21704\26031\20811\23572\&7.6.1\30340\21147\37327","\24863\12376\12427"])
Prelude Text.Show.Unicode> uprint it
"(\"Хорошо!\",[\"哈斯克尔7.6.1的力量\",\"感じる\"])"
Prelude Text.Show.Unicode> :set -interactive-print=Text.Show.Unicode.uprint
Prelude Text.Show.Unicode> it
("Хорошо!",["哈斯克尔7.6.1的力量","感じる"])
hxt-unicode
$ cabal install hxt-unicode
Installed hxt-unicode-9.0.2.4
Prelude> import Data.String.Unicode
Prelude Data.String.Unicode>
hxt-unicode 这个库可用于在不同的 coding 之间转换。
Prelude Data.String.Unicode> unicodeToUtf8 "Хорошо!"
"\208\165\208\190\209\128\208\190\209\136\208\190!"
Prelude Data.String.Unicode> unicodeToUtf8 "哈斯克尔7.6.1的力量"
"\229\147\136\230\150\175\229\133\139\229\176\148\&7.6.1\231\154\132\229\138\155\233\135\143"
Prelude Data.String.Unicode> unicodeToUtf8 "感じる"
"\230\132\159\227\129\152\227\130\139"
utf8-string
$ cabal install utf8-string
Installed utf8-string-1.0.1.1
Prelude> import Data.ByteString.UTF8
Prelude Data.ByteString.UTF8>
utf8-string 这个库可用于将字符串转换成 UTF8 字符串。
Prelude Data.ByteString.UTF8> fromString "Хорошо!"
"\208\165\208\190\209\128\208\190\209\136\208\190!"
Prelude Data.ByteString.UTF8> fromString "哈斯克尔7.6.1的力量"
"\229\147\136\230\150\175\229\133\139\229\176\148\&7.6.1\231\154\132\229\138\155\233\135\143"
Prelude Data.ByteString.UTF8> fromString "感じる"
"\230\132\159\227\129\152\227\130\139"
Haskell语言学习笔记(89)Unicode UTF8的更多相关文章
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Haskell语言学习笔记(79)lambda演算
lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...
- Haskell语言学习笔记(69)Yesod
Yesod Yesod 是一个使用 Haskell 语言的 Web 框架. 安装 Yesod 首先更新 Haskell Platform 到最新版 (Yesod 依赖的库非常多,版本不一致的话很容易安 ...
- Haskell语言学习笔记(20)IORef, STRef
IORef 一个在IO monad中使用变量的类型. 函数 参数 功能 newIORef 值 新建带初值的引用 readIORef 引用 读取引用的值 writeIORef 引用和值 设置引用的值 m ...
- Haskell语言学习笔记(39)Category
Category class Category cat where id :: cat a a (.) :: cat b c -> cat a b -> cat a c instance ...
- Haskell语言学习笔记(72)Free Monad
安装 free 包 $ cabal install free Installed free-5.0.2 Free Monad data Free f a = Pure a | Free (f (Fre ...
- Haskell语言学习笔记(49)ByteString Text
Data.ByteString String 是 [Char] 的同义词,在使用上存在List的惰性所带来的性能问题. 在处理大型二进制文件时,可以使用 ByteString 来代替 String. ...
- Haskell语言学习笔记(44)Lens(2)
自定义 Lens 和 Isos -- Some of the examples in this chapter require a few GHC extensions: -- TemplateHas ...
- Haskell语言学习笔记(38)Lens(1)
Lens Lens是一个接近语言级别的库,使用它可以方便的读取,设置,修改一个大的数据结构中某一部分的值. view, over, set Prelude> :m +Control.Lens P ...
随机推荐
- T-SQL 无参数的存储过程的创建和执行
use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery') drop procedure ...
- 获取地图文档(*.mxd)中比例尺问题
地图比例尺的概念是建立在有投影坐标系的空间参考前提下,将地图缩放到一定大小的比例值. 在多数情况下,我们都是将一个地图文档(*.mxd)加载到地图控件中(AxMapControl)显示出来,照此去获取 ...
- Frobenius 范数
- set函数&操作
集合的交叉并补 交集, 共同的部分 set1 & set2 set1.intersection(set2) 差集 set1有set2没有的元素 set1 - set2 set1.differe ...
- cordova 常用操作
#创建插件 plugman create --name MyMath --plugin_id SimpleMath --plugin_version #进入插件目录 cd MyMath #plugin ...
- Hibernate 抓取策略
抓取策略: 为了改变SQL语句执行的方式 当应用程序需要在Hibernate实体对象的关联关系间进行导航的时候,Hibernate如何获取关联对象的策略 抓取策略可以在O/R映射的元数据中声明,也可以 ...
- (转)C# WebApi 跨域问题解决方案:CORS
原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...
- 通过git将本地文件上传到码云的方法
1. 在码云上创建项目 在码云首页顶部,下图所示,右上角头像旁边的加号,鼠标移上去会显示下拉的,点击“新建项目”. 2. 安装Git 下载完成后安装即可,安装过程中没有注意事项,全部默认一直next直 ...
- pytho 单例模式
单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!! (程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象.存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅 ...
- Patrick Hughes - 错觉3D雕塑艺术
Pictures Patrick Hughes (artist) From Wikipedia, the free encyclopedia Patrick Hughes. Leaning on a ...