0 0

Erlang OTP R13B02的unicode对于windows的支持问题20

study-erlang的时候,突然发现windows上的erlang有点怪。


例如字符串"abc"
对于R13B02的版本,可以这样表示<<"abc"/utf16>>
--> 这样在windows上显示的结果是<<0, 97, 0, 98, 0, 99>>

这个结果可和预期的不一样,因为windows上的"abc"-utf16应该是类似<<97, 0, 98, 0, 99, 0>>这样的,
否则写入文件的时候字符串的顺序都不正确。

请问大牛们这个问题如何解决?


备注:
对于字符"a",以前可以这样写:
<<10#97:16/little>>,或者<<10#97:16/native>>这样可以得出<<97,0>>这样正确序列,
现在unicode的语法增加了,但是感觉没有办法和以前的指定序列的功能想组合起来使用,
其实我更想要的语法类似(这里是YY的) : <<"abc"/utf16/native>> ~_~....

有没有比较简单的解决方法呢???
Thanks

-------------------------------------------------------------------

2009/11/16
这个问题自己搞定了,汗。。
方法:
getUnicode(Str) ->
  Bin = unicode:characters_to_binary(Str, utf8, {utf16, little}),
  Rtn = binary_to_list(Bin),
  Rtn.

原来一直没注意到unicode里面的这个characters_to_binary/3, 揣摩了好几遍erlang-doc.终于找到了@_@...


记:这个问答区真是冷嘎,建议合并到论坛模块好了。。。。。
2009年11月13日 16:49
目前还没有答案

相关推荐

Global site tag (gtag.js) - Google Analytics