Java代碼中如何設(shè)置輸出字符集為UTF-8
今日無聊,來試試如何在 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;
}
}其中我們要看的語句,其實只有一行
System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));
在設(shè)置Java程序的輸出字符集為UTF-8。
System.setOut 是 Java標(biāo)準(zhǔn)庫 中的一個靜態(tài)方法,用于設(shè)置標(biāo)準(zhǔn)輸出流。標(biāo)準(zhǔn)輸出流是程序輸出信息的默認(rèn)位置,通常是控制臺。
new PrintStream(System.out, true, StandardCharsets.UTF_8)創(chuàng)建了一個新的PrintStream對象。這個對象的構(gòu)造函數(shù)接受三個參數(shù):
- System.out 表示這個流將要輸出到控制臺。
- true 表示開啟自動刷新,即在輸出后立即刷新緩沖區(qū)。
- StandardCharsets.UTF_8表示使用UTF-8字符集編碼輸出的字符。
總之,這一行代碼的作用是將程序的輸出字符集設(shè)置為UTF-8,使得程序能正確輸出中文字符。
除此之外沒有別的辦法了嗎?
答案當(dāng)然是:有的。
其他辦法
1.命令行中使用JVM參數(shù):
可以在運行Java程序時,在命令行上使用-Dfile.encoding=UTF-8來設(shè)置程序的輸出字符集。
java -Dfile.encoding=UTF-8 Main
2.通過環(huán)境變量設(shè)置:
可以在運行程序之前設(shè)置環(huán)境變量file.encoding的值為UTF-8, 例如在linux中:
export file.encoding=UTF-8 java main
或者在windows中:
set file.encoding=UTF-8 java Main
3.設(shè)置編碼格式:
你可以在程序中使用 -encoding UTF-8 選項來告訴編譯器使用 UTF-8 編碼格式來編譯你的代碼。例如:
javac -encoding UTF-8 Main.java
這樣編譯后的字節(jié)碼文件就會使用UTF-8編碼格式。
以后遇到中文亂碼就不用怕啦,如果遇到了中文亂碼問題,可以使用上述方法來解決。設(shè)置程序的輸出字符集為UTF-8可以確保程序能正確輸出中文字符。
另外,還有一些其他的解決中文亂碼問題的方法,比如在文件頭部添加UTF-8編碼聲明,或者在文本編輯器中打開文件時選擇UTF-8編碼。
到此這篇關(guān)于Java代碼中設(shè)置輸出字符集為UTF-8的文章就介紹到這了,更多相關(guān)Java輸出字符集為UTF-8內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)習(xí)Java之自定義異常與NullPointerException的處理
有時候Java自身提供的異常類并不能很好地表達(dá)我們的需求,所以這時候我們就可以自定義異常,也就是說,我們可以制造出一個自己的異常類,這樣就可以拋出或捕獲自己的異常了,本文就給大家詳細(xì)講講Java自定義異常與NullPointerException的處理2023-08-08
SpringBoot工程中Spring Security應(yīng)用實踐記錄流程分析
Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。這篇文章主要介紹了SpringBoot工程中Spring Security應(yīng)用實踐,需要的朋友可以參考下2021-09-09
StringUtils工具包中字符串非空判斷isNotEmpty和isNotBlank的區(qū)別
今天小編就為大家分享一篇關(guān)于StringUtils工具包中字符串非空判斷isNotEmpty和isNotBlank的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
解決使用mybatis-plus時,生成的SQL大寫變小寫加下劃線問題
這篇文章主要介紹了解決使用mybatis-plus時,生成的SQL大寫變小寫加下劃線問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12

