1. 程式人生 > >java的字元轉碼;eclipse設定UTF-8

java的字元轉碼;eclipse設定UTF-8

把字符集中的字元 編碼為指定集合中某一物件(例如:位元模式、自然數序列、8位組或者電脈衝),以便文字在計算機中儲存和通過通訊網路的傳遞。

不同國家、不同計算機系統編碼方式不同;
中國大陸:GBK (規定檔案為GB13000)

Unicode(中文:萬國碼、國際碼、統一碼、單一碼)是電腦科學領域裡的一項業界標準。它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,也是一種字首碼。它可以用來表示Unicode標準中的任何字元,且其編碼中的第一個位元組仍與ASCII相容,這使得原來處理ASCII字元的軟體無須或只須做少部分修改,即可繼續使用。因此,它逐漸成為電子郵件、網頁及其他儲存或傳送文字的應用中,優先採用的編碼。

怎麼做?
java中

String s = "浣犲ソ"; //這是"你好"的gbk編碼的字串
String ss = new String(s.getBytes(), "UTF-8");
System.out.println(ss);

檢視API文件:

String(byte[] bytes, Charset charset) 
通過使用指定的 charset 解碼指定的 byte 陣列,構造一個新的 String
java中的String類是按照unicode進行編碼的,當使用String(byte[] bytes, String encoding)構造字串時,encoding所指的是bytes中的資料是按照那種方式編碼的,而不是最後產生的String
是什麼編碼方式,換句話說,是讓系統把bytes中的資料由encoding編碼方式轉換成unicode編碼。如果不指明,bytes的編碼方式將由jdk根據作業系統決定。 當我們從檔案中讀資料時,最好使用InputStream方式,然後採用String(byte[] bytes, String encoding)指明檔案的編碼方式。不要使用Reader方式,因為Reader方式會自動根據jdk指明的編碼方式把檔案內容轉換成unicode編碼。 當我們從資料庫中讀文字資料時,採用ResultSet.getBytes()方法取得位元組陣列,同樣採用帶編碼方式的字串構造方法即可。 ResultSet rs; bytep[] bytes = rs.getBytes(); String
str = new String(bytes, "gb2312"); 不要採取下面的步驟。 ResultSet rs; String str = rs.getString(); str = new String(str.getBytes("iso8859-1"), "gb2312"); 這種編碼轉換方式效率底。之所以這麼做的原因是,ResultSet在getString()方法執行時,預設資料庫裡的資料編碼方式為iso8859-1。系統會把資料依照iso8859-1的編碼方式轉換成unicode。使用str.getBytes("iso8859-1")把資料還原,然後利用new String(bytes, "gb2312")把資料從gb2312轉換成unicode,中間多了好多步驟。 從HttpRequest中讀引數時,利用reqeust.setCharacterEncoding()方法設定編碼方式,讀出的內容就是正確的了。

檢視charset
是什麼?

16 位的 Unicode 程式碼單元序列和位元組序列之間的指定對映關係。此類定義了用於建立解碼器和編碼器以及獲取與 charset 關聯的各種名稱的方法。

如何指定開始就是UTF-8?
屬性-Resource-fileEncoding

相關推薦

java字元eclipse設定UTF-8

把字符集中的字元 編碼為指定集合中某一物件(例如:位元模式、自然數序列、8位組或者電脈衝),以便文字在計算機中儲存和通過通訊網路的傳遞。 不同國家、不同計算機系統編碼方式不同; 中國大陸:GBK (規定檔案為GB13000) Unicode

java 檔案(gb2315,gbk,utf-8)csv,excel

最近做資料處理,需要將爬取的資料入庫,但是演算法提供的資料編碼格式和資料庫總是有出入,導致匯入的資料亂碼,所以寫一個轉碼程式,將檔案編碼轉為和資料庫一致。 package com.bjk.transcode; import java.io.FileInputStream; import j

java字元

java虛擬機器預設的編碼是unicode指的是記憶體中的編碼是unicode,而進行io(包括網路和硬碟)傳輸時另外編碼,通過 System.getProperty("file.encoding")檢視,通常,預設為ansi,不過通過eclipse可以配置為其他編碼

vbs gb2312轉換為UTF-8編碼的函式

<% 1、'UTF轉GB---將UTF8編碼文字轉換為GB編碼文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr)   '如果UTF8編碼文字以%開頭則進行轉換   if mid(UTFStr,Dig,1)="%"

java:string2hexString 中文字元問題解決

java 中提供了一些字串轉碼的工具類,比如:Base64,UrlEncoder & UrlDecoder。但是這些類,真的非常有侷限性,轉碼之後的字串,往往不能被當成檔案路徑識別。 於是將 字串轉成16進位制的字串就顯得非常有必要了。因為16進位制的

java 視訊

前臺通過ajaxfileupload外掛上傳提價資料: $.ajaxFileUpload({     url : "${ctx}/h5/h5preventiveEdu/updateEdu",//增加與修改通用     secureuri : false

jAVA/JS 解碼(URLEncoder.encode decodeURIComponent)

引用包:import java.net.URLDecoder; Java解碼: String s  = URLDecoder.decode(URLDecoder.decode(templateObj.getString("templateContent"), "UTF-8

字元開源庫libiconv目前還不支援64位

最新版的libiconv 1.14目前還不支援64位系統,只能編譯出32位庫。libiconv 1.14下載地址:libiconv介紹:linux系統編譯安裝方法:$ ./configure --prefix=/usr/local $ make $ make install執

傳輸中文的亂碼的原因及解決方式(兩次encodeURI())

.encodeURL函式主要是來對URI來做轉碼,它預設是採用的UTF-8的編碼. . UTF-8編碼的格式:一個漢字來三個位元組構成,每一個位元組會轉換成16進位制的編碼,同時新增上%號. 假設頁面端輸入的中文是一個 “中”,按照下面步驟進行解碼 1.第

python 字元

encode和decode python中做字元轉碼時,通常要用unicode作為中間碼 encode是將Unicode轉為其他碼。如 str1.encode('gb2312') decode是將其他碼轉為unicode,如 str2.decode('gb2312') 轉

C++字元

wchar_t* U8ToUnicode(char* szU8) { //UTF8 to Unicode //由於中文直接複製過來會成亂碼,編譯器有時會報錯,故採用16進位制形式 //char* szU8 = "abcd1234\xe4\xbd\xa0

%特殊字元解碼異常解決方案

JS加碼encodeURI(str) JS解碼decodeURI(str) JAVA解碼URLDecoder.decode(str, "UTF-8"); 摘要:Exception in thread main java.lang.IllegalArgumentExce

js java中文 適用於用url傳遞中文引數

第一種方法: 解決方法如下:1、在JS裡對中文引數進行兩次轉碼var login_name = document.getElementById("loginname").value;   login_name = encodeURI(login_name);   login_

java中文

request.setCharacterEncoding("UTF-8");  對字串變數str進行轉碼,程式碼如下: str = new String(str.getBytes("ISO88

JAVA/JS 解碼(URLEncoder.encode | URLDecoder.decode | encodeURIComponent | decodeURIComponent)

JS中一些文字拼接報文的時候,有些字元會導致報文出錯,所以這裡要用到轉碼。(其中的某些字元將被十六進位制的轉義序列進行替換) 引用包:import java.net.URLDecoder;               import java.net.URLEncoder

請求Http時可能因為字元問題導致錯誤的特殊字元

url轉換問題 String url = baseUrl + "?" + "name=" + name + "&age=" + age;     url = url.replaceAll(

Java中文的例子,用來對付亂碼

public class HelloWorld {    public static void main(String[] argv){      try{        System.out.println("中文");//1        System.out.

在js中對中文和特殊字元,js(轉載)

js對文字進行編碼涉及3個函式:escape,encodeURI,encodeURIComponent,相應3個解碼函式:unescape,decodeURI,decodeURIComponent1、   傳遞引數時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字元截斷。   

java unicode

    public static String unUnicode(String text) {         StringBuilder gbk = new StringBuilder();         String[] hex = text.split("\\

python字元問題-持續更新

1.往excel表中寫中文: 加u 或者unicode("阿薩德","utf-8") 2.程式碼前一般加# -*- coding:utf-8 -*- 3.從web上獲取的字元中特殊符號如果轉碼錯誤可