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

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

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

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

我們在調用第三方 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)過反復測試,亂碼就是?這種符號,別的符號沒測出來,應該也沒啥別的符號,我們就將這種符號截取掉就行了。

最后測試的代碼

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

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

總結

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

相關文章

  • Java 中的 File類詳情

    Java 中的 File類詳情

    這篇文章主要介紹了Java 中的 File類,對于File而言,其封裝的并不是一個真正存在的文件,僅僅是一個路徑名而已,下面我們來看看文章對File類的詳情介紹吧,需要的朋友也可以參考一下
    2021-11-11
  • java8新特性教程之time包使用總結

    java8新特性教程之time包使用總結

    Java8新增了date和time的util包,下面這篇文章主要給大家介紹了關于java8新特性教程之time包使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • Java編程實現(xiàn)軌跡壓縮之Douglas-Peucker算法詳細代碼

    Java編程實現(xiàn)軌跡壓縮之Douglas-Peucker算法詳細代碼

    這篇文章主要介紹了Java編程實現(xiàn)軌跡壓縮之Douglas-Peucker算法詳細代碼,具有一定借鑒價值,需要的朋友可以參考。
    2017-11-11
  • java鏈表應用--基于鏈表實現(xiàn)隊列詳解(尾指針操作)

    java鏈表應用--基于鏈表實現(xiàn)隊列詳解(尾指針操作)

    這篇文章主要介紹了java鏈表應用--基于鏈表實現(xiàn)隊列,結合實例形式分析了java基于鏈表實現(xiàn)隊列尾指針相關操作使用技巧,需要的朋友可以參考下
    2020-03-03
  • 教你如何用Java根據(jù)日期生成流水號

    教你如何用Java根據(jù)日期生成流水號

    這篇文章主要介紹了教你如何用Java根據(jù)日期生成流水號,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java中char[]輸出不是內存地址的原因詳解

    Java中char[]輸出不是內存地址的原因詳解

    這篇文章主要介紹了關于Java中char[]輸出為什么不是內存地址的原因,文中通過示例代碼介紹的很詳細,需要的朋友們可以參考學習。
    2017-03-03
  • Java中類加載過程全面解析

    Java中類加載過程全面解析

    這篇文章主要介紹了Java中類加載過程全面解析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 如何使用JDBC連接數(shù)據(jù)庫并執(zhí)行SQL語句

    如何使用JDBC連接數(shù)據(jù)庫并執(zhí)行SQL語句

    JDBC是Java數(shù)據(jù)庫連接的縮寫,是Java程序與數(shù)據(jù)庫進行交互的標準API。JDBC主要包括Java.sql和javax.sql兩個包,通過DriverManager獲取數(shù)據(jù)庫連接對象Connection,并通過Statement或PreparedStatement執(zhí)行SQL語句
    2023-04-04
  • 基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟

    基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟

    SpringBoot是一個用于快速開發(fā)單個微服務的框架,它基于 Spring 框架,簡化了Spring應用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • MyBatis中criteria的or(或查詢)語法說明

    MyBatis中criteria的or(或查詢)語法說明

    這篇文章主要介紹了MyBatis中criteria的or(或查詢)語法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論