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

Java中如何對(duì)字符串進(jìn)行utf-8編碼

 更新時(shí)間:2023年04月13日 09:23:42   作者:Hemist  
這篇文章主要介紹了Java中如何對(duì)字符串進(jìn)行utf-8編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java對(duì)字符串進(jìn)行utf-8編碼

我們?cè)谡{(diào)用第三方 API 時(shí),常常會(huì)被要求用到路徑變量,而路徑變量一般都是 utf-8 編碼的,因此需要對(duì)傳入的字符串參數(shù)進(jìn)行 utf-8 編碼處理。

本文提供一種使用 URLEncoder 庫(kù)進(jìn)行編碼的方式。

廢話少說(shuō),上代碼。

// 使用 URLEncoder 庫(kù)對(duì)字符串進(jìn)行 utf-8 編碼
import java.net.URLEncoder;

public String encodePathVariable(String pathVariable) {
? ?String ret = "default";
? ? try {
? ? ? ? ret = URLEncoder.encode(pathVariable, "utf-8");
? ? ? ? System.out.println(pathVariable + " : " + ret);
? ? }catch(Exception e) {
? ? ? ? System.out.println(e);
? ? }
? ? return ret;
}

java按照字節(jié)截取字符串-utf-8

如何按照utf-8的字節(jié)截取字符串呢?

utf-8,中文一個(gè)漢字是三個(gè)字節(jié),一個(gè)字母或特殊符號(hào)是1個(gè)字節(jié)。

String類沒有提供按字節(jié)截取字符串的方法,

StringUtil提供了截取的方法,但是默認(rèn)是8858-1的,而且不能指定編碼格式

但是給了我們思路,我們就將這段代碼粘貼出來(lái),將后面的編碼格式給改成utf-8的

建個(gè)測(cè)試方法測(cè)試下

還是有些問(wèn)題,截取3個(gè)字節(jié)時(shí),正好把中字截取出來(lái)了,4個(gè)字節(jié)時(shí)有亂碼,5個(gè)字節(jié)時(shí),還有亂碼,6個(gè)字節(jié)時(shí),打印了兩個(gè)字節(jié),正好兩個(gè)中文漢字。也就是說(shuō),本身是三個(gè)字節(jié)的文字,我們只取了它的1個(gè)字節(jié),所以識(shí)別不出來(lái)出現(xiàn)了亂碼!

經(jīng)過(guò)反復(fù)測(cè)試,亂碼就是?這種符號(hào),別的符號(hào)沒測(cè)出來(lái),應(yīng)該也沒啥別的符號(hào),我們就將這種符號(hào)截取掉就行了。

最后測(cè)試的代碼

亂碼沒有了,而且準(zhǔn)確率還高,因?yàn)樽址那闆r挺復(fù)雜的,什么都有,文字,標(biāo)點(diǎn),特殊符號(hào),穿插其中,字節(jié)也不一樣,網(wǎng)上看了很多例子,都是他們自己編寫的算法啥的,用了之后,錯(cuò)誤率挺高的。

/**
*string:字符串
 offset:從哪個(gè)字節(jié)開始
 len:從哪個(gè)字節(jié)結(jié)束
*/
public static String getFromCompressedUnicode(String string,int offset,int len) throws UnsupportedEncodeingException{
byte[] bytes = string.getBytes("utf-8");
int len_to_use = Math.min(len,bytes.length - offset);
 return new String(bytes,offset,len_to_use,"utf-8").replaceAll("?","")
}

總結(jié)

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

相關(guān)文章

  • Mybatis中的@Param及動(dòng)態(tài)SQL詳解

    Mybatis中的@Param及動(dòng)態(tài)SQL詳解

    這篇文章主要介紹了Mybatis中的@Param及動(dòng)態(tài)SQL詳解,@Param是MyBatis所提供的作為Dao層的注解,作用是用于傳遞參數(shù),從而可以與SQL中的的字段名相對(duì)應(yīng),需要的朋友可以參考下
    2023-10-10
  • Java實(shí)時(shí)獲取基金收益項(xiàng)目源碼分享

    Java實(shí)時(shí)獲取基金收益項(xiàng)目源碼分享

    這篇文章主要介紹了Java實(shí)時(shí)獲取基金收益項(xiàng)目源碼分享,主要包括JAVA爬取天天基金網(wǎng)數(shù)據(jù)使用實(shí)例、應(yīng)用技巧、基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),需要的朋友可以參考下
    2021-03-03
  • Java時(shí)間工具類Date的常用處理方法

    Java時(shí)間工具類Date的常用處理方法

    在Java中獲取當(dāng)前時(shí)間,可以使用 java.util.Date 類和 java.util.Calendar 類完成。其中,Date 類主要封裝了系統(tǒng)的日期和時(shí)間的信息,下面將詳細(xì)介紹Date類的常用處理方法,需要的可以參考一下
    2022-05-05
  • Java讀取properties文件連接數(shù)據(jù)庫(kù)的方法示例

    Java讀取properties文件連接數(shù)據(jù)庫(kù)的方法示例

    這篇文章主要介紹了Java讀取properties文件連接數(shù)據(jù)庫(kù)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Spring Cloud Gateway替代zuul作為API網(wǎng)關(guān)的方法

    Spring Cloud Gateway替代zuul作為API網(wǎng)關(guān)的方法

    本文簡(jiǎn)要介紹如何使用Spring Cloud Gateway 作為API 網(wǎng)關(guān)(不是使用zuul作為網(wǎng)關(guān)),結(jié)合實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Android中幾種圖片特效的處理的實(shí)現(xiàn)方法

    Android中幾種圖片特效的處理的實(shí)現(xiàn)方法

    這篇文章主要介紹了 Android中幾種圖片特效的處理的實(shí)現(xiàn)方法的相關(guān)資料,這里有放大縮小圖片,獲得圓角圖片,獲得帶倒影圖片的幾種方法,需要的朋友可以參考下
    2017-08-08
  • 詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版

    詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版

    這篇文章主要介紹了詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java異常處理攔截器詳情

    java異常處理攔截器詳情

    這篇文章主要介紹了java異常處理攔截器,使用異常處理攔截器,可以不用寫那么多try…catch…,下面就來(lái)學(xué)習(xí)關(guān)于java異常處理攔截器的詳情內(nèi)容吧,需要的朋友可以參考一下
    2021-10-10
  • Quarkus集成open api接口使用swagger ui展示

    Quarkus集成open api接口使用swagger ui展示

    這篇文章主要為大家介紹了Quarkus集成open?api接口使用swagger?ui的展示示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • SpringBoot YAML語(yǔ)法基礎(chǔ)詳細(xì)整理

    SpringBoot YAML語(yǔ)法基礎(chǔ)詳細(xì)整理

    YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語(yǔ)言)的遞歸縮寫。在開發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語(yǔ)言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10

最新評(píng)論

礼泉县| 息烽县| 新乡市| 屏东市| 黄龙县| 贵阳市| 洪泽县| 建水县| 广州市| 满城县| 石嘴山市| 满洲里市| 宾阳县| 民丰县| 德惠市| 定远县| 延边| 平武县| 库尔勒市| 吴川市| 丘北县| 通州区| 舟曲县| 静乐县| 泰来县| 太原市| 子长县| 新津县| 嘉黎县| 柳江县| 天台县| 彰武县| 山阳县| 长白| 仁寿县| 调兵山市| 卓尼县| 临海市| 新龙县| 晋州市| 沅陵县|