【问题标题】:C# get string replacing NULLs with line breakC#获取字符串用换行符替换NULL
【发布时间】:2012-05-20 00:04:19
【问题描述】:

我有一个包含 unicode 字符串列表的字节数组。每个字符串都以0x00 0x00 结尾。 Encoding.Unicode.GetString 有效,但它返回一个连接字符串。我想有换行符。

一种可能的解决方案是用换行符替换0x00 0x00 序列,然后使用上述函数将字节数组转换为字符串,但我不知道该怎么做。有什么想法吗?

【问题讨论】:

    标签: c# string unicode bytearray


    【解决方案1】:

    有什么理由不先将其转换为字符串,然后使用正常的字符串替换?

    var text = Encoding.Unicode.GetString(binary).Replace("\u0000", "\r\n");
    

    编辑:如前所述,您可能希望使用Environment.NewLine 来获取当前系统的行分隔符。这取决于您的上下文。

    【讨论】:

    • OP 可能假设 null 字符丢失了。
    • Environment.NewLine 呢?
    • 不知道。谢谢。
    • vidstige:我觉得这样更好。
    • @vidstige:这取决于需要什么。 有时您需要“当前系统的行分隔符” - 其他时候您需要特定的行分隔符,因为这是您的协议所要求的。没有迹象表明 OP 处于哪种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多