gpt4 book ai didi

java - 使用哪种编码来查找使用默认编码的代码?

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:32 24 4
gpt4 key购买 nike

在编写从 Java 流中读取文本的代码时,一个常见的错误是忘记指定编码。如果您不指定任何内容,Java 将使用平台默认编码,这最终会导致问题(“但它可以在我的计算机上运行!”)。

为了找到这些问题,我想使用一种不常见的默认编码,它应该尽可能多地破坏 I/O 操作。这个想法是至少 ASCII 之外的任何字符都会被破坏。

我们的大部分文档都使用 UTF-8 编码。 ISO-8859-1 可能有效,因为它只是保留输入(它是字节和字符之间的 1:1 映射)。任何元音变音都将被读取为两个/树字节序列。但我想知道我们是否可以做得更好。

您建议使用 list of supported encodings 中的哪种编码?

最佳答案

UTF-16 的默认编码很有可能“破坏”任何非 UTF-16 的文档。

但我认为您的做法是错误的。检测依赖于默认编码的狡猾代码的更好方法是为诸如 PMD 之类的东西编写一些自定义规则。只需查找在 String、IO 类等上使用违规方法和构造函数的代码。

(“使用奇怪的默认编码”方法的问题是您的测试可能不足以运行所有有问题的代码,或者它可能运行代码但未检测到重整。)

关于java - 使用哪种编码来查找使用默认编码的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8601861/

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