本文目錄一覽:
- 1、急!急!JAVA中ASCII轉碼問題??
- 2、java生成二維碼名片,內容太大,轉碼怎麼實現
- 3、\xd0\xa1\xc4\xac是什麼的轉碼,要怎麼轉回去啊,用native2ascii不能轉
- 4、在JAVA中如果字元串被改變了編碼格式,該怎麼樣將它還原回來呢?
- 5、Java中中文轉碼,為什麼中文數字轉不過來?
- 6、java轉碼問題
急!急!JAVA中ASCII轉碼問題??
看了幾位的回答,感覺有點好笑,樓主本身就出了一個假命題,幾位回答都沒有弄清字符集的轉換,樓主也不知道自己本身就犯了一個致命錯誤,「你好」本身就是一個多位編碼,你卻硬要用低位碼去解碼,不出錯才怪呢?
String s1 =new String(chinaString.getBytes(“gb2312″),”ISO-8859-1”);
這裡的gb2312可以省略,系統會默認用你控制面板設定好的字符集,因為原來「你好」是多位編碼,所以必須用多位編碼去解碼,也就是gb2312或utf-8去解碼,這樣chinaString.getBytes(“gb2312”)就變成一個byte數組,這時候你可以隨意重新指定編碼如iso-8859-1,這是s1就變成一個是iso-8859-1編碼的字元串,如果你想重新轉為中文,那麼,你用什麼字符集編碼的,必須用什麼字符集來解碼,這裡是iso-8859-1,可以這麼來做
String s2 = new String(s1.getBytes(“ISO-8859-1″),”gb2312”);
這樣s2又重新變回中文了,所以當你列印s2時,就是「你好」。
還有一個問題,為什麼這裡用iso-8859-1來重新編碼,而不用其他的字符集呢?這裡因為,其他字符集無法相互轉碼而發生編碼丟失現象,你可以試試,把iso-8850-1換成utf-8試試,這無法重新轉回來,這導致亂碼現象,如果你ios-8850-1換成gbk,大部分是可以的,因為gbk兼容gb2312,但是,不是所有的都能相互轉回來,最好用iso-8850-1來作為中間轉碼字符集,這是因為所有的字符集都對iso-8859-1兼容,不管是gbk還是gb2312,utf-8,都能完美地轉換回來。
說了這麼多,可能大家還有點迷糊,這應用在什麼地方。我舉個例子,大家知道,經常有人做網路爬蟲,把網頁下載下來,但是,網頁編碼各種各樣,主要有iso-8859-1,gbk,gb2312,utf-8,網頁以io位元組流下載下來,要想把它轉換字元流,也就是文字,這時候要知道編碼是什麼。怎麼辦呢?這樣做,不管它,首先以iso-8859-1編碼轉換過來,然後再用正則表達式看看網頁頭部,如:
meta content=”text/html; charset=gb2312″ http-equiv=”Content-Type”,這時就知道這個網頁的編碼是gb2312,再利用這個式子
String s2 = new String(s1.getBytes(“ISO-8859-1″),”gb2312”);
s2就能正確顯示網頁內容。假如你用其他字符集如utf-8作為中間碼,也能知道網頁編碼是gb2312,但這是你用式子
String s2 = new String(s1.getBytes(“utf-8″),”gb2312”),就會出現亂碼現象,所以最好用iso-8859-1作為中間碼。
所以,樓主除了犯以上錯誤以外,還有,就不應該用US-ASCII作為中間碼,否則,是不能轉換為中文的,它們之間無法做到相互轉換,只有iso-8859-1才能完美轉換成其他編碼。
java生成二維碼名片,內容太大,轉碼怎麼實現
Java中字元串轉碼,根據實際運用的環境有以下三種方式 使用Java.lang.String這是最常用的方法,先用對應編碼獲取位元組,然後重新構造新編碼,示例代碼如下: String s = “清山”; byte[] b = s.getBytes(“utf-吧”);//編碼 String sa = new String(b, “gb二三一二”);//解碼:用什麼字符集編碼就用什麼字符集解碼 java.io.InputStreamReader/OutputStreamWriter:橋轉換讀寫文件的應用中,可以使用這種方式,直接在IO流構造中轉換,示例代碼如下: InputStream is = new FileInputStream(“C:/項目進度跟蹤.txt”);//文件讀取 InputStreamReader isr = new InputStreamReader(is, “utf-吧”);//解碼 OutputStream os = new FileOutputStream(“C:/項目進度跟蹤_gb二三一二.txt”);//文件輸出 OutputStreamWriter osw = new OutputStreamWriter(os, “gb二三一二”);//開始編碼 java.nio.Charset使用nio中的Charset轉換字元,示例代碼如下: Charset inSet = Charset.forName(“utf-吧”); // 解碼字符集 Charset outSet = Charset.forName(“gb二三一二”); // 編碼字符集 CharsetDecoder de = inSet.newDecoder(); // 解碼器 CharsetEncoder en = outSet.newEncoder();// 編
\xd0\xa1\xc4\xac是什麼的轉碼,要怎麼轉回去啊,用native2ascii不能轉
先前轉錯了吧,這種是ASCII,但不是JAVA的格式的、是普通的 ASCII 。
JAVA的是 \u76ee\u524d\u7528\u6236:
在JAVA中如果字元串被改變了編碼格式,該怎麼樣將它還原回來呢?
UTF-8
在裝換成
gb2312
的是,信息已經丟失了,不可能在正常的轉換回去的
只能通過設置正確的編碼方式來
獲取
正確的文件內容
Java中中文轉碼,為什麼中文數字轉不過來?
中文數字「1」其實跟一般的中文字是一樣的。所以當文件的編碼格式轉換之後,還是沒法轉過來的。
如果你只是想改變文件的編碼格式,並且想讓文件裡面的內容不會出現亂碼的話,有個辦法。
1、先把文件的內容複製一份出來,copy到記事本裡面;
2、修改文件的編碼格式;
3、把copy到記事本的內容再copy回改了編碼格式之後的文件中;
4、保存文件。
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~,希望對你有所幫助
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232575.html