【问题标题】:C# searching for extended ascii characters in stringC#在字符串中搜索扩展的ascii字符
【发布时间】:2020-08-23 12:51:19
【问题描述】:

我有一个文件,我正在搜索特定的 ascii 字符。

从文件中获取文本后,我运行了以下代码:

var t = text.IndexOf((char)128);

Hexedit 显示我有 HEX 80 字符,即 ascii 字符 128,但 t 最终值为 -1。

我还有其他方法可以搜索这个角色吗?

【问题讨论】:

  • 您必须考虑用于保存原始文件的编码,以及用于在字符串中加载该文件内容的编码(您的 text 变量)。您有不同的编码格式(ASCII、UTF-8、UTF-16),因此,文件中的一个字符可能由一个或两个字节组成(取决于编码)。当框架转换(char)128 时,它使用了默认编码......女巫可能与用于加载文件的编码不同。
  • 也许您可以发布更多代码(可能是文件内容/编码和您用于加载文件的代码),以获得更好的上下文。
  • 感谢 CicheR。答案是在读取文件时设置适当的编码。

标签: c# search hex ascii


【解决方案1】:

我发现我必须对我的编码进行适当的更改,如下所示,以便能够按预期搜索字符串。就我而言,它是以下内容:

var text = File.ReadAllText(filename, Encoding.UTF7);

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多