C# Form Feed/Female 符号字符'♀'替换问题

C# Form Feed/Female sign character '♀' replacement issue

读取文件时在 C# 代码中识别换页字符时出现问题

string contents = File.ReadAllText(file);

我尝试以各种格式进行编码,然后 运行 使用字符的 UTF-8 十六进制值、UTF-32 十六进制值进行替换。

watch window我看到了 '\f'字符

但是当我展开 visualizer 时,我看到了真正的女性角色

您如何识别要搜索的正确字符? \f 还是女性符号的一些变体?

我在这个网站上查看了编码值的变化,但没有在 c# 中实际找到它:www.fileformat.info/info/unicode/char/2640/index.htm

关于您是要查找字符 \f 还是 字符,您的问题有点含糊。

如果您要查找 字符,可以使用十六进制代码 0x2640,或者直接使用字符原样:

var ctn = File.ReadAllText("file.txt", Encoding.UTF8);
int pos = ctn.IndexOf((char)0x2640);
int pos1 = ctn.IndexOf('♀');

澄清:我认为混淆可能是因为字符 ALT+12 和字符 ALT+2640 经常产生相同的 'Female Sign' 字符,但这是出于历史原因,因为 ALT+12 是, 在 ASCII 中,设备控制代码。只有 ALT+2640 Unicode 字符专门设计用于始终生成 符号。

所以,我今天早上重新运行所有内容,结合以下 UTF8 编码和搜索 '\f'

string contents = File.ReadAllText(file, Encoding.UTF8); int pos = contents.IndexOf("\f");

终于成功了。

我仍然不知道为什么手表和可视化器显示的字符不同,但这种搜索组合有效。

谢谢大家