今日無聊,來試試如何在 Java
代碼中更改輸出字符集。
一行代碼設(shè)置輸出字符集為UTF-8
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));
System.out.println("Hello world!");
System.out.println("請輸入年份:");
int year;
year = new Scanner(System.in).nextInt();
boolean isLeapYear = isLeapYear(year);
System.out.println(isLeapYear);
}
/**
* @param year 年份
* @return 是否是閏年
*/
static boolean isLeapYear(int year){
if(year % 4 == 0 && year % 100 != 0){
return true;
}else return year % 400 == 0;
}
}
其中我們要看的語句,其實(shí)只有一行
System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));
在設(shè)置Java程序的輸出字符集為UTF-8。
System.setOut
是 Java標(biāo)準(zhǔn)庫 中的一個(gè)靜態(tài)方法,用于設(shè)置標(biāo)準(zhǔn)輸出流。標(biāo)準(zhǔn)輸出流是程序輸出信息的默認(rèn)位置,通常是控制臺。
new PrintStream(System.out, true, StandardCharsets.UTF_8)創(chuàng)建了一個(gè)新的PrintStream對象。這個(gè)對象的構(gòu)造函數(shù)接受三個(gè)參數(shù):
- System.out 表示這個(gè)流將要輸出到控制臺。
- true 表示開啟自動(dòng)刷新,即在輸出后立即刷新緩沖區(qū)。
- StandardCharsets.UTF_8表示使用UTF-8字符集編碼輸出的字符。
總之,這一行代碼的作用是將程序的輸出字符集設(shè)置為UTF-8,使得程序能正確輸出中文字符。
除此之外沒有別的辦法了嗎?
答案當(dāng)然是:有的。
其他辦法
- 命令行中使用JVM參數(shù):
可以在運(yùn)行Java程序時(shí),在命令行上使用-Dfile.encoding=UTF-8
來設(shè)置程序的輸出字符集。
java -Dfile.encoding=UTF-8 Main
- 通過環(huán)境變量設(shè)置:
可以在運(yùn)行程序之前設(shè)置環(huán)境變量file.encoding的值為UTF-8, 例如在linux中:
export file.encoding=UTF-8
java main
或者在windows中:
set file.encoding=UTF-8
java Main
- 設(shè)置編碼格式:
你可以在程序中使用 -encoding UTF-8 選項(xiàng)來告訴編譯器使用 UTF-8 編碼格式來編譯你的代碼。例如:
javac -encoding UTF-8 Main.java
這樣編譯后的字節(jié)碼文件就會(huì)使用UTF-8編碼格式。
以后遇到中文亂碼就不用怕啦,如果遇到了中文亂碼問題,可以使用上述方法來解決。設(shè)置程序的輸出字符集為UTF-8可以確保程序能正確輸出中文字符。
另外,還有一些其他的解決中文亂碼問題的方法,比如在文件頭部添加UTF-8編碼聲明,或者在文本編輯器中打開文件時(shí)選擇UTF-8編碼。文章來源:http://www.zghlxwxcb.cn/news/detail-456096.html
關(guān)注默子,無限進(jìn)步!文章來源地址http://www.zghlxwxcb.cn/news/detail-456096.html
到了這里,關(guān)于【Java】在代碼中設(shè)置輸出字符集為UTF-8的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!