繁体   English   中英

Haskell字符编码

[英]Haskell character encoding

我正在编写一个生成XML文件的Haskell程序。 显然,在<?xml?>标记中指定字符编码被认为是传统的。 我的问题是,最好的事情是什么?

  1. 使用hGetEncoding查找文件的编码,并将其记录在XML文件头中。

  2. 使用hSetEncoding 指定我想要的编码,然后将其硬编码到XML文件头中。

第一个选项似乎有一个问题,我需要一种将Haskell调用的编码转换为XML调用的方法。 第二个问题是,除非我能弄清楚PC上所有其他应用程序使用的编码方式,否则该文件将不可读(Web浏览器除外)。

所有这些都有些令人困惑,因为我几乎可以肯定甚至不需要 Unicode。 我只是写没有特殊字符...纯普通英文文本(啊,但£标志的编码不同,不是吗? 叹气

我建议您使用Hackage上已经存在的XML库之一,例如xml-conduit ,它将自动为您处理编码问题。 通常,我强烈建议输出UTF-8数据。

通常, 您可以决定要在应用程序内部处理的编码以及要输出的编码。 不要让它碰碰运气或某些组件的异想天开。 知道你正在处理什么编码用, 决定想要什么编码与打交道和处理的差异适当。

我要确保在使用其他编码之前,确保您的内部和外部编码为UTF-8,并将其他编码中的任何输入转换为UTF-8。 无论您是否认为需要Unicode,都必须对某些事情进行标准化,并且除非有具体的理由反对使用Unicode,否则这是最灵活的选择,以后再也不会遇到麻烦。

我会选择选项2-比依赖默认行为更好地控制所使用的编码。

正如乔尔·斯波斯基(Joel Spolsky)所说: 没有纯文本这样的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM