说在String变量中可以存储所有ASCII符号是否正确?

时间:2018-10-22 14:20:16

标签: java html string ascii

我想知道从定义上说“一个字符串变量可以包含每个ASCII符号”是否与长度限制无关是否正确。还是字符串变量无法存储某些符号?如果是这样,HTML输入字段和Java字符串变量之间的限制是否有所不同?

2 个答案:

答案 0 :(得分:2)

字符串变量允许您存储任何ASCII字符。

String allSymbolsASCII = IntStream.range(0, 128)
    .mapToObj(i -> (char) i).map(c -> c.toString())
    .collect(Collectors.joining());
IntStream.range(0, allSymbolsASCII.length())
    .forEach(i -> System.out.println("" + i + " = " + allSymbolsASCII.charAt(i)));

答案 1 :(得分:1)

用Java将HTML中的文本描述为ASCII同样奇怪。 HTML中的文本来自Unicode字符集。 Java中的文本数据类型使用Unicode字符集的UTF-16字符编码。

Unicode的设计人员包括几乎所有其他计算机化字符集中的字符。您可能熟悉许多。 (ISO 8859-1字符集中的字符以与前256个代码点相同的数字合并到Unicode中。(ASCII字符集中的字符与前128个编码点以相同的数字合并到ISO 8859-1字符集中。 ))

尽管Unicode很大(代码点空间为21位,但只有0到1114111),但是Java实现和HTML处理器中对文本长度的实际限制应远远超过此限制。此外,通常使用HTTP将HTML输入发布回Web服务器。除了在微型设备上运行的Web服务器上之外,通常应该没有问题。