【发布时间】:2015-05-08 06:05:51
【问题描述】:
我正在尝试像这样强制使用 UTF-8:
to_utf8(X) when is_list(X) ->
unicode:characters_to_binary(X, utf8);
to_utf8(X) when is_binary(X) ->
to_utf8(binary_to_list(X));
to_utf8(X) -> X.
并像这样测试它:
<<"é"/utf8>> = to_utf8(<<"é">>),
<<"Ø"/utf8>> = to_utf8(<<"Ø">>),
<<"œ"/utf8>> = to_utf8(<<"œ">>),
使用 R16B03 时一切正常。然而,在升级到 Erlang 17.5 后,该函数停止对诸如“œ”或“Ā”之类的字符起作用,即使它们在 UTF-8 中可用
由于 R17 使用 utf-8 作为默认编码,而不是 R16 的 latin-1,这应该和以前一样工作。
我是否忽略了什么?
谢谢:)
【问题讨论】:
标签: erlang