本文目錄一覽:
- 1、java如何把string轉為utf-8
- 2、java怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串
- 3、java 轉碼問題
- 4、java文件讀取內容轉碼
- 5、java 怎麼gbk轉碼utf-8
java如何把string轉為utf-8
java不同編碼之間進行轉換,都需要使用unicode作為中轉。
String str = “任意字元串”;
str = new String(str.getBytes(“gbk”),”utf-8″);
備註說明:
str.getBytes(“UTF-8”); 意思是以UTF-8的編碼取得位元組
new String(XXX,”UTF-8″); 意思是以UTF-8的編碼生成字元串
舉例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = “”;
String xmlUTF8=””;
try {
xmString = new String(sb.toString().getBytes(“UTF-8”));
xmlUTF8 = URLEncoder.encode(xmString, “UTF-8”);
System.out.println(“utf-8 編碼:” + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
擴展資料:
UTF-8編碼規則:
如果只有一個位元組則其最高二進位位為0;如果是多位元組,其第一個位元組從最高位開始,連續的二進位位值為1的個數決定了其編碼的位元組數,其餘各位元組均以10開頭。
實際表示ASCII字元的UNICODE字元,將會編碼成1個位元組,並且UTF-8表示與ASCII字元表示是一樣的。所有其他的UNICODE字元轉化成UTF-8將需要至少2個位元組。每個位元組由一個換碼序列開始。第一個位元組由唯一的換碼序列,由n位連續的1加一位0組成,首位元組連續的1的個數表示字元編碼所需的位元組數。
Unicode轉換為UTF-8時,可以將Unicode二進位從低位往高位取出二進位數字,每次取6位,如上述的二進位就可以分別取出為如下示例所示的格式,前面按格式填補,不足8位用0填補。
參考資料來源:百度百科:UTF-8
java怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串
通過JDK1.6知道String類中getBytes(」編碼「)方法可以講一個數用指定的編碼轉成一個位元組數組,String中通過指定的 charset解碼指定的 byte 數組,構造一個新的 String。代碼如下:
try{
String s = “java學習”;
System.out.println(s);
String result = new String(s.getBytes(“GB2312″),”iso-8859-1”);
System.out.println(s);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
擴展資料:
getBytes() 方法有兩種形式:
1、getBytes(String charsetName): 使用指定的字符集將字元串編碼為 byte 序列,並將結果存儲到一個新的 byte 數組中。
2、getBytes(): 使用平台的默認字符集將字元串編碼為 byte 序列,並將結果存儲到一個新的 byte 數組中。
參考資料:
百度百科-getBytes()
java 轉碼問題
看我這個,是本人原創。不管你是任何編碼都可以解決,唯一的缺點是效率稍微低了點(不過比樓上那個要快)。
思路:
1.首先在jsp頁面即客戶端用JavaScript將漢字處理成asc碼
2.服務端再將asc碼還原成原有的字元
JavaScript轉換代碼:
var s=document.getElementById(“text”).value;
var t=””;
//將漢字轉換成ASCII碼,然後在伺服器端里再根據ASCII碼轉換成相應的字元
for(i=0;is.length;i++){
t+=s.charCodeAt(i)+” “;//將字元轉換成相應的ASCII碼並用空格隔開;
}
java服務端還原:
String param=request.getParameter(“param”);
StringBuffer buf=new StringBuffer(“”);
String[] ss = param.split(” “);
for (int i = 0; i ss.length; i++) {
char c = (char) Integer.parseInt(ss[i].trim());
buf.append(c);
}
System.out.println(“還原後的字元是:”+buf.toString());
———————-
如果你再把轉換後的asc碼再加個數字或者減個數字就是一個簡單的加密,O(∩_∩)O~,希望對你有所幫助
java文件讀取內容轉碼
讀取的文件流如果是read(讀取位元組流的時候,中文就會是亂碼)方法,所以現在全都是聽過readline方式進行的讀取。舉例:
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = “D:/test/test.txt”;
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
bre.close(),//關閉流,否則bre流會一直存在,直到程序運行結束。
除此之外,java文件讀取的時候有中文就很出現亂碼,通常獲取到的文件中通常都是「iso8859-1」格式,需要轉換為「UTF-8」格式。
如:String str = new String(str.getByte(“iso8859-1”),”UTF-8″);進行下強制轉換後在進行讀取即可。
備註:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的強制轉換不成功,依次進行這些格式的嘗試,肯定是可以解決問題的。
java 怎麼gbk轉碼utf-8
方法一:
思路:先轉為Unicode,然後轉為GBK
String utf8 = new String(t.getBytes( “UTF-8”));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),”UTF-8″);
System.out.println(unicode);
String gbk = new String(unicode.getBytes(“GBK”));
System.out.println(gbk);
方法二:
public static void main(String[] args) {
String str=”字元串編碼轉換”;
try {
byte[] temp=str.getBytes(“utf-8”);//這裡寫原編碼方式
byte[] newtemp=new String(temp,”utf-8″).getBytes(“gbk”);//這裡寫轉換後的編碼方式
String newStr=new String(newtemp,”gbk”);//這裡寫轉換後的編碼方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/162632.html