`
ZacMa
  • 浏览: 39119 次
  • 来自: 深圳
社区版块
存档分类
最新评论

erlang 字符编码 <29>

 
阅读更多
用mochiweb通过网页发送中文到服务器,结果服务器显示乱码,无论打印,还是存储日志,还是再次解析出来发往客户端均是乱码,网上搜索后发现了一些问题所在:编码不一致
erlang 字符编码的文章有很多,erlang默认是用latin1,不支持中文,
如果要支持中文,需要用其他编码,unicode常用, utf8是unicode中最常用的.
eshell也要是unicode编码才可以。否则不支持中文,当然如果用linux终端,例如我用的是centos,shell用的是xshell,xshell本身的编码也要设置正确; 如果eshell设置的是latin1中文都无法输入; 见图片

这样eshell才可以正常接收和显示中文;
编码转化为unicode,使用的时候要用ts格式才可以正常显示为中文,例如io:format等;
关于ts
The Erlang compiler will interpret the code as ISO-8859-1 encoded text, which limits you to Latin characters."translation modifier" when working with Unicode texts. The modifier is "t". When applied to the "s" control character in a formatting string, it accepts all Unicode codepoints and expect binaries to be in UTF-8.

看这个例子例如
打开utf8保存的文件
  文件内容如下test.file:
[
{desc, "这是一个测试文件"},
{author, "litaocheng"}
].

其格式为erlang term,保存时选择utf8编码。
代码如下:
Erlang代码  %% read content from the file 
test1() -> 
    {ok, [Terms]} = file:consult("test.txt"), 
    Desc = proplists:get_value(desc, Terms), 
    _Author = proplists:get_value(author, Terms), 
     
    % out put the Desc and Author 
    DescUniBin = iolist_to_binary(Desc), 
    DescUniList = unicode:characters_to_list(DescUniBin), 
    io:format("desc bin : ~ts~ndesc bin : ~p~n",[DescUniBin, DescUniBin]), 
    io:format("desc list: ~ts~ndesc list: ~p~n", [DescUniList, DescUniList]).
这样就可以显示中文,


1. http://erlangdisplay.iteye.com/blog/364389
2. http://www.cnblogs.com/me-sa/archive/2012/05/31/erlang-unicode.html
  • 大小: 77.2 KB
分享到:
评论

相关推荐

    erlang lib of iconv

    Erlang库中的iconv是一个用于字符编码转换的模块,它在处理多语言文本和不同编码格式时扮演着重要角色。Erlang是一种并发、分布式、面向进程的编程语言,常用于构建高可用性和容错性的系统。在这个库中,iconv提供了...

    erlang jiffy code

    2. **编码(Encoding)**: 将 Erlang 数据结构转换为 JSON 字符串或二进制。这个过程允许我们从 Erlang 程序生成符合 JSON 标准的输出。 3. **性能优化**: Jiffy 被设计为快速和内存效率高,适合在性能敏感的场景下...

    b64:erlang中base64编码的实现

    &lt; Sextet&gt;&gt;) -&gt; [ todigit ( Sextet )| encode ( Rest )]; 在上面的代码段中,一组六位从较大的二进制数据块中分离出来。 即使Rest部分不能被8整除,这也可以工作。 todigit只是将每个六位的可能映射映射到相应的...

    erlang 中文乱码

    首先,我们需要理解Erlang中的字符编码。Erlang标准库默认使用Unicode(通常是UTF-8)作为其内部字符串表示。这意味着所有内部的文本数据都应该以UTF-8编码。然而,在与其他系统交互,如读取或写入文件时,如果编码...

    介绍 Erlang binary 和 bit string 数据类型的经典文章

    &lt;&lt;Res:32&gt;&gt; = &lt;&lt;1, 2, 3, 4&gt;&gt; bxor &lt;&lt;5, 6, 7, 8&gt;&gt;, Res. ``` 上面的代码展示了如何对两个 binary 进行按位异或操作。 #### 结论 通过引入 bit strings 和 binary comprehensions,Erlang 在处理位和字节级别...

    erlang 笔记

    同时,也可以使用特殊的字符编码(如ASCII)来表示字符,如:`$s-32` 表示大写的"S"。 #### 5. 高级特性与函数式编程 - **匿名函数**: Erlang支持定义匿名函数,例如: ```erlang Double = fun(X) -&gt; 2 * X end....

    Erlang UTF-8 转 Unicode 的字典程序

    在处理字符编码时,Erlang支持多种编码格式,其中包括UTF-8和Unicode。在Erlang中,UTF-8是一种常见的用来表示Unicode字符的编码方式,因为它既能有效地存储大多数常见字符,又具有良好的向后兼容性。 在Erlang R14...

    erlang-style-guide:Erlang 编码风格指南

    Erlang 编码风格指南理论易于维护的代码应该: 看起来它是由单个实体编写的遵循社区最佳实践和习惯用法适合测试、指标收集和其他审查/验证使查找处理系统特定问题的代码变得容易我们为其他开发人员编写代码,而不是...

    esl-erlang_22.0~windows_amd64.exe.7z

    9. **文本编码:**Erlang默认使用Unicode(UTF-8)编码,方便处理各种字符集。 这个"esl-erlang_22.0~windows_amd64.exe.7z"文件是Erlang的压缩包,采用7-Zip压缩格式。7-Zip是一种开源的文件压缩软件,提供更高的...

    jsone:Erlang JSON库

    #{&lt;&lt;"age"&gt;&gt; =&gt; 30, &lt;&lt;"city"&gt;&gt; =&gt; &lt;&lt;"New York"&gt;&gt;, &lt;&lt;"name"&gt;&gt; =&gt; &lt;&lt;"John"&gt;&gt;} 3&gt; ErlangMap = #{'name' =&gt; "John", 'age' =&gt; 30, 'city' =&gt; "New York"}. #{'age' =&gt; 30,'city' =&gt; 'New York','name' =&gt; 'John'} 4...

    Erlang Syntax For Notepad++

    这些文件可能包括`.xml`扩展名的文档,它们详细列出了Erlang的关键字、注释、字符串、常量等元素,并指定了它们在编辑器中的显示方式。 在提供的压缩包子文件的文件名称列表中: 1. "SourceForge_...

    erlang_guidelines:Inaka的Erlang编码准则

    Erlang编码标准和准则 建议的阅读材料: : 目录: 荣耀干 按功能对子目录中的模块进行分组 头文件 句法 不要写意粉代码 避免动态通话 避免深层嵌套 避免如果表达式 避免嵌套尝试... 命名 命名时要保持一致 显式...

    erlang json rfc4627

    标题 "erlang json rfc4627" 指涉的是Erlang语言实现对JSON(JavaScript Object Notation)的解析和编码,遵循RFC4627规范。JSON是一种轻量级的数据交换格式,被广泛应用于Web服务和分布式系统之间传递数据。RFC4627...

    erl-base58:一个简单的 Erlang Base58 编码器和解码器

    Base58 表示法使用的表示法几乎没有歧义字符,这使得人类更容易验证 Base58 字符串是否正确。 用法 下面的例子演示了这个模块的用法: 1 &gt; base58 : integer_to_base58 ( 16#00010966776006953D5567439E5E39F86A0...

    AjErl:用 C# 编写的类似 Erlang 的语言解释器

    学习 Erlang:编码教程 有人可以解释一下 Erlang 中 Pid 的结构吗? 并发编程 错误和过程 列表 Erlang 的重大变化 流程 “绿色线程”和 Erlang 的进程有什么区别? 特别是关于 Erlang/OTP 和多核性能 通信顺序过程...

    purestyle:个人主页

    purestyle个人主页用于跟踪播放列表的网络应用。 这些播放列表可以包含来自不同来源(YouTube,spotify等)... 查看转换: file -i (linux) file -I (macos) 变更转换: iconv -f utf-8 -t iso-8859-1 &lt; file&gt; file.new

    jsx:一个用于使用,生成和操作json的Erlang应用程序。 受到yajl的启发

    1. 解析(Parsing):jsx能够将JSON格式的字符串或二进制数据转换为Erlang术语(term)。这个过程涉及到解析JSON文本,并将其转换成Erlang可以理解的数据结构,如列表、元组和原子等。jsx支持两种解析模式:安全解析...

    erlsom:用于Erlang的XML解析器

    4. **XMLErlang**:`erlsom` 还支持XMLErlang,这是一种将Erlang术语编码为XML的格式,用于在Erlang系统之间交换数据。 **使用erlsom** 在`erlsom-master` 压缩包中,包含了`erlsom` 的源代码和可能的示例。要使用...

Global site tag (gtag.js) - Google Analytics