字符看起来像 ASCII 63 但不是,所以我无法删除它

2023-12-05

我正在从文本文件中读取文本。文本文件必须读取的第一个字符串是“Algood”,并记下空格。在记事本中,该字符串中似乎有空格,但事实并非如此。当我在 Visual Studio 的 QuickWatch 中测试第 6 个(从零开始的索引)字符时,它显示为:

"�"c

当我使用Asc函数获取ASCII码,它告诉我ASCII码是63。63是一个问号。但是当我测试该字符串是否包含 ASCII 63 时,它测试为 false。所以看起来该字符串包含 ASCII 代码 63 的字符,只是它没有,它包含一些其他测试为 ASCII 代码 63 的字符。这是一个问题:如果我不删除该字符,我就无法删除该字符知道该怎么称呼它。我可以删除最后一个字符,但并非文本文件中的每个字符串都包含该字符。

enter image description here

问题是:如果这个字符不是问号,它是什么?我如何唯一标识以便删除它?


它是Unicode 替换字符,U+FFFD,又名ChrW(&HFFFD).

切勿使用 Asc() 或 Chr(),它们是不处理 Unicode 的旧版 VB6 函数。将一个奇特的 Unicode 代码点传递给 Asc() 总是会产生 63,即"?"c,又名“我不知道你在说什么”。这exact相同的想法"�"c但使用 ASCII 代码代替。

看到死亡黑钻石回来总是坏消息,当字符串从底层字节值转换时出现了问题。因为某些字节值没有产生有效的字符。这才是你真正应该寻找的,你总是想避免 GIGO。垃圾进垃圾出是一个丑陋的数据损坏问题,没有赢家,只有受害者。你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符看起来像 ASCII 63 但不是,所以我无法删除它 的相关文章

随机推荐