在CentOS系统上Java编译时出现乱码,通常是由于字符编码不一致造成的。以下是一些解决Java编译时乱码的步骤:
JAVA_OPTS
环境变量来指定JDK的默认字符编码为UTF-8。在终端中执行以下命令:export JAVA_OPTS="-Dfile.encoding=UTF-8"
你还可以将这条命令添加到你的 .bashrc
或 .bash_profile
文件中,以便每次启动终端时自动设置。import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class CharsetExample {
public static void main(String[] args) {
String filePath = "example.txt";
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), StandardCharsets.UTF_8))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
检查和设置系统的默认字符集: 使用以下命令检查当前系统的字符集:
locale
如果输出结果中不是UTF-8,可以通过编辑 /etc/locale.conf
文件来进行修改:
LANG=en_US.UTF-8
然后重新启动系统以使更改生效。
确保数据库的字符集设置: 检查数据库(如MySQL)的字符集设置,确保其被设置为UTF-8。可以运行以下SQL命令验证数据库字符集:
SHOW VARIABLES LIKE 'character_set%';
如果需要修改数据库字符集,可以在数据库配置文件(如 my.cnf
或 my.ini
)中设置:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
然后重启MySQL服务。
conf/server.xml
文件来设置URI编码:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
Window
-> Preferences
。General
-> Workspace
。Text file encoding
部分,选择 Other
并设置为 UTF-8
。辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>