我需要测试包含有效非ascii字符+无效非ascii字符+无效ascii字符
的字符串的处理。
有人可以给我一些这样的角色的例子吗?如果您能让我知道它们在其类别中的值范围,那就太好了,因为我不太能够区分哪些非 ascii 值可能有效,哪些非 ascii 值无效。
Ex : String str = "Bj��rk����oacute�";
^
Is it a valid or invalid non-ascii
仅供引用,我是 Java 初学者。
最佳答案
共有 128 个有效的基本 ASCII 字符,映射到值 0(NUL
字节)到 127(DEL
字符)。 See here .
必须明智地使用“性格”这个词。 “性格”的定义是一个特殊的定义。例如,è
,这是一个字符吗?或者是两个字符(e
和 `
)?这取决于。
其次,字符序列完全独立于其编码。为了简单起见,我假设每个字节都被解释为一个字符。
你可以确定一个字节是否可以被解析为ASCII字符,你可以简单地这样做:
byte[] bytes = "Bj��rk����oacute�".getBytes();
for (byte b : bytes) {
// What's happening here? A byte that is in the range from 0 to 127 is
// valid, and other values are invalid. A byte in Java is signed, that
// means that valid ranges are from -128 to 127.
if (b >= 0) {
System.out.println("Valid ASCII");
}
else {
System.out.println("Invalid ASCII");
}
}
关于java - 有效/无效的非 ASCII 字符和无效的 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47173022/