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

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

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

Java實(shí)現(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)換成普通字符串
? ? ? ? // 其中的字符串直接從上圖所示窗口復(fù)制過(guò)來(lái),chrome 默認(rèn)用 UTF-8 字符集進(jìn)行編碼,所以也應(yīng)該用對(duì)應(yīng)的字符集解碼
? ? ? ? System.out.println("采用UTF-8字符集進(jìn)行解碼:");
? ? ? ? String keyWord = URLDecoder.decode("%E9%99%88", "UTF-8");
? ? ? ? System.out.println(keyWord);
// ? ? ? ?System.out.println("\n 采用GBK字符集進(jìn)行解碼:");
// ? ? ? ?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("天津大學(xué)", "GBK");
// ? ? ? ?System.out.println(urlStr2);
? ? }
}

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

使用UTF-8或GBK編碼后還是亂碼的問(wèn)題

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

主要原因是進(jìn)行編碼以及解碼的字符集不一致導(dǎo)致

所以,在解決字符集亂碼問(wèn)題時(shí)一般情況下會(huì)顯示指定編碼和解碼字符集。

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

不顯式指定時(shí)一般會(huì)使用默認(rèn)字符集進(jìn)行編碼或解碼,此時(shí)需要確保使用的獲取默認(rèn)字符集的方法一樣。

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

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

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

兩者的區(qū)別是

**Charset.defaultCharset()**通過(guò)在JVM啟動(dòng)時(shí)通過(guò)-Dfile.encoding=UTF-8參數(shù)來(lái)進(jìn)行設(shè)置。此方式只支持在jvm啟動(dòng)時(shí)設(shè)置一次,不支持在運(yùn)行期修改。

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

總結(jié)

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

相關(guān)文章

  • SpringMVC獲取HTTP中元素的實(shí)現(xiàn)示例

    SpringMVC獲取HTTP中元素的實(shí)現(xiàn)示例

    本文主要介紹了SpringMVC獲取HTTP中的元素,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java?Servlet響應(yīng)httpServletResponse過(guò)程詳解

    Java?Servlet響應(yīng)httpServletResponse過(guò)程詳解

    HttpServletResponse是處理http響應(yīng)的對(duì)象,調(diào)用該對(duì)象的方法,設(shè)置到對(duì)象屬性的內(nèi)容,tomcat最終會(huì)組織為http響應(yīng)報(bào)文
    2022-02-02
  • jvm之java類(lèi)加載機(jī)制和類(lèi)加載器(ClassLoader)的用法

    jvm之java類(lèi)加載機(jī)制和類(lèi)加載器(ClassLoader)的用法

    這篇文章主要介紹了jvm之java類(lèi)加載機(jī)制和類(lèi)加載器(ClassLoader)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 使用SpringBoot+Prometheus+Grafana實(shí)現(xiàn)可視化監(jiān)控

    使用SpringBoot+Prometheus+Grafana實(shí)現(xiàn)可視化監(jiān)控

    本文主要給大家介紹了如何使用Spring?actuator+監(jiān)控組件prometheus+數(shù)據(jù)可視化組件grafana來(lái)實(shí)現(xiàn)對(duì)Spring?Boot應(yīng)用的可視化監(jiān)控,文中有詳細(xì)的代碼供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-02-02
  • java 在觀察者模式中使用泛型T的實(shí)例

    java 在觀察者模式中使用泛型T的實(shí)例

    下面小編就為大家?guī)?lái)一篇java 在觀察者模式中使用泛型T的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • 詳解idea maven項(xiàng)目如何使用lib下得jar包

    詳解idea maven項(xiàng)目如何使用lib下得jar包

    這篇文章主要介紹了詳解idea maven項(xiàng)目如何使用lib下得jar包,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 詳解Java中的悲觀鎖與樂(lè)觀鎖

    詳解Java中的悲觀鎖與樂(lè)觀鎖

    樂(lè)觀鎖對(duì)應(yīng)于生活中樂(lè)觀的人總是想著事情往好的方向發(fā)展,悲觀鎖對(duì)應(yīng)于生活中悲觀的人總是想著事情往壞的方向發(fā)展.這兩種人各有優(yōu)缺點(diǎn),不能不以場(chǎng)景而定說(shuō)一種人好于另外一種人,文中詳細(xì)介紹了悲觀鎖與樂(lè)觀鎖,需要的朋友可以參考下
    2021-05-05
  • SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密

    SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密

    本文主要介紹了SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • java后端+前端使用WebSocket實(shí)現(xiàn)消息推送的詳細(xì)流程

    java后端+前端使用WebSocket實(shí)現(xiàn)消息推送的詳細(xì)流程

    后端向前端推送消息就需要長(zhǎng)連接,首先想到的就是websocket,下面這篇文章主要給大家介紹了關(guān)于java后端+前端使用WebSocket實(shí)現(xiàn)消息推送的詳細(xì)流程,需要的朋友可以參考下
    2022-10-10
  • SpringBoot整合Redis使用注解進(jìn)行緩存方式

    SpringBoot整合Redis使用注解進(jìn)行緩存方式

    文章介紹了使用Redis進(jìn)行數(shù)據(jù)緩存的幾種方式,包括手動(dòng)配置RedisTemplate、使用Spring的Caching模塊以及配置自定義的RedisCacheManager
    2025-03-03

最新評(píng)論

舞阳县| 东港市| 封开县| 临江市| 阳西县| 吉隆县| 互助| 分宜县| 汾阳市| 贵溪市| 垦利县| 隆回县| 会东县| 高尔夫| 嘉义市| 界首市| 绍兴县| 临邑县| 民县| 饶河县| 陈巴尔虎旗| 沛县| 永泰县| 滕州市| 南开区| 赤水市| 达孜县| 晋江市| 乳源| 成都市| 长沙市| 天长市| 历史| 济源市| 曲阳县| 盈江县| 呈贡县| 台山市| 新平| 上杭县| 若尔盖县|