【问题标题】:Handling .Net UTF-8 strings in Erlang在 Erlang 中处理 .Net UTF-8 字符串
【发布时间】:2010-10-21 14:42:00
【问题描述】:

我正在使用 erlang 和分布式数据库 Mnesia。

我面临的第一个问题是 erlang 的“int list”字符串和 .Net UTF-8 字符串之间的不兼容。

有什么好的转换库吗?

谢谢

【问题讨论】:

  • .NET 字符串在内存中本质上是 UTF-16,而不是 UTF-8。 UTF-8 是大多数 API 使用的默认编码,如果省略编码,仅此而已。

标签: .net utf-8 string erlang


【解决方案1】:

Erlang 新的R13B 版本对 unicode 有更好的支持。

新的 Unicode 模块记录在 here 中,实现的 Unicode 支持在 EEP 10 (Erlang Enhancement Proposal 10) 中进行了描述。

【讨论】:

    【解决方案2】:

    据我所见,erlang 使用 UTF32,因此使用 System.Text.Encoding.UTF32 可能会获取列表的整数,然后您需要从中创建列表。虽然没有测试。

    以下 sn-p 可能会有所帮助(它会创建一个 unicode ints 数组,该数组应与 erlang 列表的预期匹配):

    public static int[] GetIntsForString(string source) {
        byte[] data = System.Text.Encoding.UTF32.GetBytes(source);
        int[] result = new int[source.Length];
        for (int i = 0; i < source.Length; i++) {
            result[i] = BitConverter.ToInt32(data, i*4);
        }
        return result;
    }
    

    【讨论】:

    • 编辑中添加的有帮助吗,还是有其他需要帮助的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多