gpt4 book ai didi

java - 如何知道文件中有哪些特殊字符?

转载 作者:行者123 更新时间:2023-11-30 05:59:41 25 4
gpt4 key购买 nike

我的应用程序需要在批处理过程中处理文本文件。有时我会收到一个文件末尾带有一些特殊字符的文件。我不确定那个特殊字符是什么。无论如何,我是否可以找到该角色是什么,以便我可以告诉正在生成该文件的其他团队。

我使用 mozilla 的库来猜测文件编码,它显示为 UTF-8。

最佳答案

首先,这个角色是否真的“特殊”取决于你所说的“特殊角色”。作为 Unix 和 OS X 上的旁注,您可以使用例如 odfilehexdump 命令来轻松检查文件:

... $  hexdump -C example.txt 
00000530 6f 77 73 20 61 63 74 69 6f 6e 2e 0a 0a 0a 0a |ows action.....|

现在,如果您知道您的文件编码是 UTF-8,则意味着最高位设置为零的每个字节恰好对应于一个字符(在上面的示例中,最后一个字节是“0a”,这意味着“0a'字节对应一个“字符”)。

UTF-8 格式的文件还意味着最高位设置为 1 的每个字节都是多字节字符的一部分。例如,在以下字节序列中:

75 20 5b e2 80 a6 5d 20  61 75 74 6f 72 69 73 61

唯一设置了最高位的三个字节是“e2 80 a6”(从 0x80 到 0xFF 的所有值都设置了最左边/最高位),并且它们是同一字符的一部分(不能有非- UTF-8 中的 ASCII 字符仅由一个最高位被设置的字节组成,因此您知道这三个字节是同一字符的一部分...事实上,每个最左边/最高位被设置的 UTF-8 字节是恕我直言,UTF-8 的一个真正美丽的功能)。

现在,您在 Google 上搜索“e2 80 a6”,您会发现它是名为“horizo​​ntal ellipsis”的 Unicode 字符(其代码点在 UTF-8 中由十六进制 e280a6 表示)。

所以基本上你必须做两件事:

  • 查找哪些字节构成了最后一个“特殊”字符(它只是一个字节还是几个字节?)

  • 查找这个/这些字节对应的“特殊字符”

关于java - 如何知道文件中有哪些特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2683239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com