gpt4 book ai didi

unicode - erlang 如何打印 unicode 字符串?

转载 作者:行者123 更新时间:2023-12-02 06:42:13 25 4
gpt4 key购买 nike

我使用 io:format 将消息记录到磁盘。每条消息看起来像 [{field1, Content1}, {field2, Content2}, ...]。

当我使用 io:format("~p", [Msg]) 打印它时,文件看起来像 [{field1, <<123,456,789,...>>}, ...]。

但是我想以原始形式打印 unicode 字符串,而不是像整数数组那样。我该怎么办?

最佳答案

butter71 是正确的,您将无法仅打印出该术语并将二进制文件解释为 Unicode。您必须首先隔离二进制文件。打印二进制文件时,您还需要使用“t”,这将允许您打印 latin1 范围之外的字符。见:http://www.erlang.org/doc/man/io_lib.html#format-2

这是打印出您所拥有的内容的示例。我使用 unicode:characters_to_binary 将我输入的内容转换为 UTF8。只是执行 <<"¿,©,ō">> 会导致异常。

Msg = [{field1, unicode:characters_to_binary("¿,©,ō")}, {field2, ...}, ...]
[{field1, Field1}|_] = Msg.
io:format("~ts~n", [Field1]).
¿,©,ō
ok
io:format("~s~n", [Field1]).
¿,©,Å
ok

正如您所看到的,没有 't' 的示例会产生乱码。

如果您要尝试遍历您的结构以将其转换为字符串并打印出来,请查看 iolists。

关于unicode - erlang 如何打印 unicode 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com