java - 有效/无效的非 ASCII 字符和无效的 ASCII 字符

标签 java string ascii non-ascii-characters

我需要测试包含有效非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/

相关文章:

java - 当子项目之间存在冲突时,为什么 maven 使用旧版本?

java - <h :inputText> howto execute bean method on blur?

c - 使用 strcmp 搜索相等的字符串

java - 如何在 Java 8 中使用自定义格式打印日期?

c - C 上的 bool 表达式

c# - EBCDIC 到 ASCII 的转换。越界错误。在 C# 中

java - 摩托罗拉 Android 2.2 相机忽略 EXTRA_OUTPUT 参数

java - 尝试/捕获与抛出异常

c - 如何知道字符串指针在重新分配后是否真的变小了?

delphi - 为什么 Delphi 7 在追加模式下打开文件时会在 ASCII 代码 14 之后截断文件?