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

Java中如何對字符串進行utf-8編碼

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

java對字符串進行utf-8編碼

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

本文提供一種使用 URLEncoder 庫進行編碼的方式。

廢話少說,上代碼。

// 使用 URLEncoder 庫對字符串進行 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,中文一個漢字是三個字節(jié),一個字母或特殊符號是1個字節(jié)。

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

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

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

建個測試方法測試下

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

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

最后測試的代碼

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

/**
*string:字符串
 offset:從哪個字節(jié)開始
 len:從哪個字節(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é)

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

相關(guān)文章

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

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

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

    Java實時獲取基金收益項目源碼分享

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

    Java時間工具類Date的常用處理方法

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

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

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

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

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

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

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

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

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

    java異常處理攔截器詳情

    這篇文章主要介紹了java異常處理攔截器,使用異常處理攔截器,可以不用寫那么多try…catch…,下面就來學(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的展示示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • SpringBoot YAML語法基礎(chǔ)詳細整理

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

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

最新評論

阜宁县| 伊宁市| 右玉县| 东辽县| 汝州市| 山阴县| 甘泉县| 长治县| 大名县| 屏东县| 沾化县| 南乐县| 仙居县| 文安县| 新巴尔虎左旗| 襄城县| 常熟市| 简阳市| 石狮市| 长葛市| 武威市| 枣阳市| 稷山县| 咸丰县| 庄浪县| 怀仁县| 洮南市| 渭南市| 泽州县| 尤溪县| 镇江市| 阳信县| 潮州市| 胶南市| 什邡市| 稻城县| 江口县| 江门市| 洛扎县| 雅安市| 民权县|