java 环境变量 字符集_系统字符集对Java程序的影响

系统字符集对Java程序的影响

Linux 下 LANG 环境变量

常用的几个LANG 值

export LANG=en_US.UTF-8 # 英文 UTF-8编码

export LANG=zh_CN.UTF-8 # 中文 UTF-8编码

export LANG=zh_CN.GB18030 # 中文 GB18030编码

export LANG=C # ascii 编码 unset LANG 或者 LANG 为空等同此种情况

export LANG=POSIX # ascii 编码 等同 LANG=C

对Java程序,字符串在java内存中总是按unicode编码存储的,系统字符集会影响到字节流=>字符流、字符流=>字节流的转换

InputStream -> Reader

Writer -> OutputStream

String -> bytes

bytes -> String

// 获取系统默认字符集

System.getProperty("file.encoding"); // 中文windows 下默认是GBK

Charset.defaultCharset(); (import java.nio.charset.Charset)

// 以 UTF-8 读取文件

FileInputStream fis = new FileInputStream("d:\\input.txt");

InputStreamReader reader = new InputStreamReader(fis, "UTF-8");

String encoding = "UTF-8";

ByteArrayOutputStream baos = new ByteArrayOutputStream();

Writer output = new OutputStreamWriter(baos, encoding); // 指定从字符流转换成字节流时的字符编码

// 如果不指定字符编码则使用默认的字符编码,也就是LANG中设置的

String.getBytes(charset)

new String(bytes, charset)

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于javac显示乱码的问题,一般是由于系统的编码设置不正确导致的。你可以尝试以下方法来解决这个问题: 1. 检查系统的默认编码设置。在Windows系统下,可以通过以下步骤进行检查和更改: - 在桌面上右键点击“此电脑”,选择“属性”。 - 在弹出的窗口中,选择“高级系统设置”。 - 在“系统属性”窗口中,点击“高级”选项卡,然后点击“环境变量”按钮。 - 在“环境变量”窗口中,找到并编辑名为“JAVA_TOOL_OPTIONS”的系统变量。在变量值中添加“-Dfile.encoding=UTF-8”(不包含引号)。 - 确认并关闭所有窗口,重新启动命令提示符窗口,输入javac命令查看是否还有乱码。 2. 检查命令提示符窗口的编码设置。可以通过以下步骤进行检查和更改: - 打开命令提示符窗口。 - 右键点击窗口的标题栏,选择“属性”。 - 在“属性”窗口中,点击“选项”选项卡。 - 在“选项”选项卡中,找到“显示选项卡”下的“启用快速编辑模式”和“启用插入模式”,确保它们都未勾选。 - 在“属性”窗口中,点击“字体”选项卡。 - 在“字体”选项卡中,选择一个支持中文字符集的字体,如“Consolas”或“宋体”。 - 确认并关闭所有窗口,重新启动命令提示符窗口,输入javac命令查看是否还有乱码。 如果以上方法都无法解决问题,可以尝试重新安装Java开发环境,并确保下载的安装包是正确的。另外,还可以尝试在其他命令行工具中运行javac命令,看是否仍然存在乱码问题。希望这些方法能够帮助你解决问题!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值