最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中properties文件中的中文亂碼問(wèn)題

 更新時(shí)間:2023年08月04日 08:52:36   作者:FangwayLee  
Properties為了方便用戶的配置,用于讀取Java的配置文件,不同的編程語(yǔ)言有自己所支持的配置文件,能讓用戶夠脫離程序本身去修改相關(guān)的變量設(shè)置,這篇文章主要介紹了Java中properties文件中的中文亂碼問(wèn)題,需要的朋友可以參考下

Properties類是什么?

Properties(Java.util.Properties),該類主要用于讀取Java的配置文件,不同的編程語(yǔ)言有自己所支持的配置文件,配置文件中很多變量是經(jīng)常改變的,為了方便用戶的配置,能讓用戶夠脫離程序本身去修改相關(guān)的變量設(shè)置。就像在Java中,其配置文件常為.properties文件,是以鍵值對(duì)的形式進(jìn)行參數(shù)配置的。

Java中properties文件中的中文亂碼問(wèn)題

問(wèn)題代碼:

 // 目標(biāo):使用Properties讀取屬性文件中的內(nèi)容。
         // 1、創(chuàng)建properties對(duì)象
          Properties properties = new Properties();
          // 2、使用properties對(duì)象加載屬性文件中的鍵值對(duì)數(shù)據(jù)。
          properties.load(new FileInputStream("day10-special-file-log\\src\\users.properties"));
          // 3、確認(rèn)是否讀取出來(lái)了
         System.out.println(properties);
         // 4、根據(jù)鍵取值
         String pwd = properties.getProperty("admin");
         System.out.println(pwd);
         properties.forEach((k , v) -> {
             System.out.println(k + "=" + v);
         } );

day10-special-file-log\\src\\users.properties文件里面的內(nèi)容如下:

期望輸出應(yīng)該和上面文件的內(nèi)容一樣,結(jié)果中文內(nèi)容輸出的是一堆亂碼: 1 å¼ æ? å¿?=minmin 2 å?¨è?·è?¥=miejue 3 èµµæ??=wuji 4 admin=123456

可如果將上面properties.load(new FileInputStream("day10-special-file-log\\src\\users.properties"));換成properties.load(new FileReader("day10-special-file-log\\src\\users.properties"));就能正常輸出中文了,那這是什么原因呢?

其實(shí)properties文件中的中文亂碼問(wèn)題主要有以下幾個(gè)原因:

1.properties文件的編碼格式和Java代碼的編碼格式不一致。properties文件默認(rèn)使用ISO-8859-1編碼,而Java代碼可能使用UTF-8或GBK等編碼。這樣在讀取或?qū)懭雙roperties文件時(shí),就會(huì)出現(xiàn)中文字符無(wú)法正確解析的情況。

2.properties文件中的中文字符沒(méi)有經(jīng)過(guò)轉(zhuǎn)換。properties文件只能存儲(chǔ)ASCII字符,所以如果要使用中文字符,就需要將其轉(zhuǎn)換為Unicode編碼。可以使用native2ascii.exe工具或者IDE的插件來(lái)實(shí)現(xiàn)這個(gè)轉(zhuǎn)換。

3.在Java代碼中指定字符集。在使用FileInputStream或FileWriter等類來(lái)讀取或?qū)懭雙roperties文件時(shí),需要指定相應(yīng)的字符集,例如UTF-8??梢允褂肐nputStreamReader或OutputStreamWriter等類來(lái)包裝FileInputStream或FileWriter,并傳入相應(yīng)的字符集參數(shù)。

而properties.load(new FileReader(file))能正常讀取的原因是,F(xiàn)ileReader默認(rèn)使用了與properties文件相同的字符編碼,即UTF-8。這樣就可以正確地解析文件中的中文字符,而不會(huì)出現(xiàn)亂碼。

可以使用InputStreamReader或OutputStreamWriter等類來(lái)包裝FileInputStream或FileWriter,并傳入相應(yīng)的字符集參數(shù)

示例代碼:

// 讀取文件時(shí)指定UTF-8編碼
Properties p = new Properties();
p.load(new InputStreamReader(new FileInputStream("config.properties"), "UTF-8"));
// 寫(xiě)入文件時(shí)指定UTF-8編碼
Properties p = new Properties();
p.setProperty("name", "李芳");
p.store(new OutputStreamWriter(new FileOutputStream("config.properties"), "UTF-8"), null);

到此這篇關(guān)于Java中properties文件中的中文亂碼問(wèn)題的文章就介紹到這了,更多相關(guān)java properties文件中文亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中set集合的常用方法詳解

    java中set集合的常用方法詳解

    本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于java中set集合的常用方法詳解,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。下面我們就來(lái)學(xué)習(xí)一下吧
    2021-11-11
  • mybatis中方法返回泛型與resultType不一致的解決

    mybatis中方法返回泛型與resultType不一致的解決

    這篇文章主要介紹了mybatis中方法返回泛型與resultType不一致的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • resty mail的簡(jiǎn)單發(fā)送郵件方法

    resty mail的簡(jiǎn)單發(fā)送郵件方法

    這篇文章主要為大家介紹了簡(jiǎn)單的resty mail發(fā)送郵件方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接

    IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接

    這篇文章主要介紹了IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接,文中通過(guò)圖文及示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于HttpServletRequest獲取POST請(qǐng)求Body參數(shù)的3種方式

    關(guān)于HttpServletRequest獲取POST請(qǐng)求Body參數(shù)的3種方式

    這篇文章主要介紹了關(guān)于HttpServletRequest獲取POST請(qǐng)求Body參數(shù)的3種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • struts+spring+hibernate三個(gè)框架的整合

    struts+spring+hibernate三個(gè)框架的整合

    這篇文章主要介紹了struts+spring+hibernate三個(gè)框架的整合,需要的朋友可以參考下
    2017-09-09
  • Spring Boot中使用JDBC Templet的方法教程

    Spring Boot中使用JDBC Templet的方法教程

    這篇文章主要給大家介紹了關(guān)于在Spring Boot中使用JDBC Templet的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Maven管理SpringBoot Profile詳解

    Maven管理SpringBoot Profile詳解

    這篇文章主要介紹了Maven管理SpringBoot Profile詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • IDEA在Maven項(xiàng)目中使用本地jar包的方法

    IDEA在Maven項(xiàng)目中使用本地jar包的方法

    我們?cè)谀玫脚f項(xiàng)目的時(shí)候,經(jīng)常會(huì)遇到一種情況,就是這個(gè)項(xiàng)目的maven中依賴了一個(gè)本地的jar包,這種情況就需要引入這個(gè)jar包,所以本文給大家介紹了IDEA在Maven項(xiàng)目中使用本地jar包的方法,需要的朋友可以參考下
    2024-04-04
  • Java 線程的生命周期詳細(xì)介紹及實(shí)例代碼

    Java 線程的生命周期詳細(xì)介紹及實(shí)例代碼

    這篇文章主要介紹了Java 線程的生命周期的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,幫助大家理解,需要的朋友可以參考下
    2016-10-10

最新評(píng)論

武邑县| 河源市| 静海县| 喀喇沁旗| 连江县| 龙海市| 定结县| 峨眉山市| 阳原县| 台山市| 屏边| 象州县| 双牌县| 繁峙县| 平邑县| 吴旗县| 哈巴河县| 昌邑市| 陕西省| 开阳县| 水城县| 昌江| 昭觉县| 庄河市| 隆尧县| 平山县| 洪湖市| 盱眙县| 阿克陶县| 贵德县| 大化| 师宗县| 忻州市| 新干县| 沛县| 苗栗市| 电白县| 红河县| 阜康市| 桐柏县| 宜都市|