【问题标题】:C# is valid UTF-8 [duplicate]C# 是有效的 UTF-8 [重复]
【发布时间】:2013-08-10 10:27:02
【问题描述】:

我有一个读取为 UTF8 的字符串(不是来自文件,无法检查 BOM)。 问题是有时原始文本是用另一种编码形成的,但被转换为 UTF8 - 所以字符串不可读,有点乱码。

是否有可能检测到这个字符串不是真正的 UTF8?
谢谢!

【问题讨论】:

  • 如果出现乱码,说明它没有以任何合理的方式“转换”为 UTF8。到底发生了什么?从字节到字符串到哪里去了,出了什么问题?
  • 它不是一个 dup - 字符串 is UTF8,而是从另一种编码转换而来的,所以结果是乱码。你是怎么发现的?
  • 示例:“беÑплаÑноe ÑканиÑованиe”
  • 据我所知,您无法确定字符串本身是如何编码的。你能显示出现问题的代码吗?

标签: c# encoding utf-8 character-encoding iso


【解决方案1】:

没有。它们只是字节。如果需要,您可以尝试通过尝试不同的转换并查看是否存在有效的字典单词等来猜测,但从理论上讲,如果不了解数据本身,即知道它从不使用某些字符,这是不可能的,或者总是使用某些字符,或者它主要包含在给定字典中找到的单词等。这对人来说可能看起来像是胡言乱语,但计算机无法量化“胡言乱语”。

【讨论】:

    猜你喜欢
    • 2016-09-22
    • 1970-01-01
    • 2011-08-23
    • 2016-05-23
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2012-10-18
    • 2012-12-11
    相关资源
    最近更新 更多