Java编码问题

标签 java encoding ascii

在 Java JDK 9 上定义以下字符串时 字符串 s = "एक गाव में एक किसान" 它抛出以下错误: 用于编码 US-ASCII 的不可映射字符 (0xE0) 我知道它是 UTF-8 编码的,但由于 JDK 9 将默认字符集设置为 US-ASCII,但我找不到如何从代码本身将默认字符集更改为 UTF-8?

最佳答案

I want to change the default charset from within the code

不可能1

源代码只是文本,它没有定义用于存储该文本的编码。

但是,您可以通过将所有非 ASCII 字符指定为 Unicode 转义来确定源代码为 US-ASCII,因此编码并不重要(UTF-16、UTF-32 等除外):

String s = "\u090f\u0915 \u0917\u093e\u0935 \u092e\u0947\u0902 \u090f\u0915 \u0915\u093f\u0938\u093e\u0928"

当然,这使得了解字符串的内容变得困难。

1) 由于 Java 不支持 BOM。

关于Java编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182527/

相关文章:

java - 如何让 SimpleProperty 通知第一组听众?

java - Javafx中的滚动条不滚动

java - 文件上传文件名编码

c++ - 使用 CUDA 在主机设备中将 char 转换为 int

java - java中如何将json数据转换为字符串

java - 如何在Java中加载大图像

r - 避免在 R 中进行 url 编码

php - 使用 iconv 函数将 latin1 乱码字符转换为 UTF-8 希伯来字符

python - 将字符串转换为 ASCII 值 python

python - 尝试打印人类可读的 ascii 字符串