欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)UTF-8編碼與解碼方式

 更新時間:2023年04月13日 10:01:04   作者:404.Sunflower  
這篇文章主要介紹了Java實現(xiàn)UTF-8編碼與解碼方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java實現(xiàn)UTF-8編碼與解碼

Java代碼如下:

import java.net.URLDecoder;
import java.net.URLEncoder;

//URLDecoder.decode("%E5%A4%A9%E6%B4%A5","UTF-8");
public class URLDecoderTesT {
? ? public static void main(String[] args) throws Exception {
?
? ? ? ? // 將application/x-www-form-urlencoded字符串轉(zhuǎn)換成普通字符串
? ? ? ? // 其中的字符串直接從上圖所示窗口復制過來,chrome 默認用 UTF-8 字符集進行編碼,所以也應該用對應的字符集解碼
? ? ? ? System.out.println("采用UTF-8字符集進行解碼:");
? ? ? ? String keyWord = URLDecoder.decode("%E9%99%88", "UTF-8");
? ? ? ? System.out.println(keyWord);
// ? ? ? ?System.out.println("\n 采用GBK字符集進行解碼:");
// ? ? ? ?System.out.println(URLDecoder.decode("%E5%A4%A9%E6%B4%A5%E5%A4%A7%E5%AD%A6+Rico", "GBK"));
//?
// ? ? ? ?// 將普通字符串轉(zhuǎn)換成application/x-www-form-urlencoded字符串
? ? ? ? System.out.println("\n 采用utf-8字符集:");
? ? ? ? String urlStr = URLEncoder.encode("../../../../../../../etc/passwd", "utf-8");
? ? ? ? System.out.println(urlStr);
// ? ? ? ?System.out.println("\n 采用GBK字符集:");
// ? ? ? ?String urlStr2 = URLEncoder.encode("天津大學", "GBK");
// ? ? ? ?System.out.println(urlStr2);
? ? }
}

推薦一個好的在線轉(zhuǎn)換網(wǎng)頁:https://www.bejson.com/enc/urlencode/

使用UTF-8或GBK編碼后還是亂碼的問題

大家在開發(fā)中可能經(jīng)常遇到將String字符串轉(zhuǎn)為byte[]的場景,為了避免中文亂碼,一般指定字符集為GBK或UTF-8來進行編碼以及解碼,但是如果使用不當,同樣會造成字符集亂碼問題。

主要原因是進行編碼以及解碼的字符集不一致導致

所以,在解決字符集亂碼問題時一般情況下會顯示指定編碼和解碼字符集。

// 編碼
byte[] bytes = “中文”.getBytes(“UTF-8”);
// 解碼
new String(bytes,“UTF-8”);

不顯式指定時一般會使用默認字符集進行編碼或解碼,此時需要確保使用的獲取默認字符集的方法一樣。

// 編碼 獲取默認字符集方法為:Charset.defaultCharset().name()
byte[] bytes =“中文”.getBytes();
// 解碼 獲取默認字符集方法為:Charset.defaultCharset().name()
new String(bytes);

以下列出兩種獲取默認字符集的方法及區(qū)別:

Charset.defaultCharset().name();
System.getProperty("file.encoding")

兩者的區(qū)別是

**Charset.defaultCharset()**通過在JVM啟動時通過-Dfile.encoding=UTF-8參數(shù)來進行設置。此方式只支持在jvm啟動時設置一次,不支持在運行期修改。

System.getProperty(“file.encoding”) 獲取的是操作系統(tǒng)的編碼,可以通過System.setProperty("file.encoding","UTF-8")進行修改(此修改不會影響操作系統(tǒng),重啟jvm后丟失),支持在運行期修改。 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 簡單了解Spring循環(huán)依賴解決過程

    簡單了解Spring循環(huán)依賴解決過程

    這篇文章主要介紹了簡單了解Spring循環(huán)依賴解決過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • 解決阿里代碼規(guī)范檢測中方法缺少javadoc注釋的問題

    解決阿里代碼規(guī)范檢測中方法缺少javadoc注釋的問題

    這篇文章主要介紹了解決阿里代碼規(guī)范檢測中方法缺少javadoc注釋的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • IOC?容器啟動和Bean實例化兩個階段詳解

    IOC?容器啟動和Bean實例化兩個階段詳解

    這篇文章主要為大家介紹了IOC?容器啟動和Bean實例化兩個階段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項目的操作過程

    Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項目的操作過程

    這篇文章主要介紹了Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項目,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • mybatis之批量添加問題

    mybatis之批量添加問題

    這篇文章主要介紹了mybatis之批量添加問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 給新來的同事講where?1=1是什么意思

    給新來的同事講where?1=1是什么意思

    當遇到多個查詢條件,使用where 1=1 可以很方便的解決我們的問題,但這究竟有什么意思呢?所以下面這篇文章主要給大家介紹了關(guān)于where?1=1是什么意思,需要的朋友可以參考下
    2021-12-12
  • RocketMQ?Broker如何保存消息源碼解析

    RocketMQ?Broker如何保存消息源碼解析

    這篇文章主要為大家介紹了RocketMQ源碼分析Broker如何保存消息詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Springboot中的@ConditionalOnBean注解詳細解讀

    Springboot中的@ConditionalOnBean注解詳細解讀

    這篇文章主要介紹了Springboot中的@ConditionalOnBean注解詳細解讀,@ConditionalOnMissingBean注解兩個類,一個Computer類,一個配置類,想要完成;如果容器中沒有Computer類,就注入備用電腦Computer類,如果有Computer就不注入,需要的朋友可以參考下
    2023-11-11
  • spring?cloud?gateway中配置uri三種方式

    spring?cloud?gateway中配置uri三種方式

    gateway?組件是SpringCloud?組件中的網(wǎng)關(guān)組件,主要是解決路由轉(zhuǎn)發(fā)的問題,跟nginx有點類似,區(qū)別是nginx多用在前端上,gateway用在后端上,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2023-08-08
  • Java配置JDK開發(fā)環(huán)境及環(huán)境變量

    Java配置JDK開發(fā)環(huán)境及環(huán)境變量

    這篇文章主要為大家詳細介紹了Java配置JDK開發(fā)環(huán)境及環(huán)境變量,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論