java字元轉碼
轉碼流程:檔案(gbk)-->解碼-->編碼--->檔案(utf-8)
注:如有問題請留言
下面具體的例項
方法一:java.lang.String
Java程式碼- 用於解碼的構造器:
- String(byte[] bytes, int offset, int length, String charsetName)
- String(byte[] bytes, String charsetName)
- 用於編碼的方法:
-
byte[] getBytes(String charsetName) //使用指定字符集進行編碼
- byte[] getBytes() //使用系統預設字符集進行編碼
- public void convertionString() throws UnsupportedEncodingException{
- String s = "清山";
- byte[] b = s.getBytes("gbk");//編碼
- String sa = new String(b, "gbk");//解碼:用什麼字符集編碼就用什麼字符集解碼
-
System.out.println(sa);
- b = sa.getBytes("utf-8");//編碼
- sa = new String(b, "utf-8");//解碼
- System.err.println(sa);
- }
方法二:java.io.InputStreamReader/OutputStreamWriter:橋轉換
Java程式碼- package com.qingshan.io;
- import java.io.FileInputStream;
-
import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.io.UnsupportedEncodingException;
- /**
- * <pre>
- * 使用java.io橋轉換:對檔案進行轉碼
- * </pre>
- * <hr Color="green" ></hr>
- * 2012 Qingshan Group 版權所有
- * <hr Color="green" ></hr>
- * @author thetopofqingshan
- * @version 1.0.0
- * @since JDK 1.5
- * @date 2012-4-28
- */
- public class CharsetConvertion {
- private FileInputStream fis;// 檔案輸入流:讀取檔案中內容
- private InputStream is;
- private InputStreamReader isr;
- private OutputStream os;
- private OutputStreamWriter osw;//寫入
- private char[] ch = new char[1024];
- public void convertionFile() throws IOException{
- is = new FileInputStream("C:/專案進度跟蹤.txt");//檔案讀取
- isr = new InputStreamReader(is, "gbk");//解碼
- os = new FileOutputStream("C:/專案進度跟蹤_utf-8.txt");//檔案輸出
- osw = new OutputStreamWriter(os, "utf-8");//開始編碼
- char[] c = new char[1024];//緩衝
- int length = 0;
- while(true){
- length = isr.read(c);
- if(length == -1){
- break;
- }
- System.out.println(new String(c, 0, length));
- osw.write(c, 0, length);
- osw.flush();
- }
- }
- public void convertionString() throws UnsupportedEncodingException{
- String s = "清山集團";
- byte[] b = s.getBytes("gbk");//編碼
- String sa = new String(b, "gbk");//解碼:用什麼字符集編碼就用什麼字符集解碼
- System.out.println(sa);
- b = sa.getBytes("utf-8");//編碼
- sa = new String(b, "utf-8");//解碼
- System.err.println(sa);
- }
- /**
- * <pre>
- * 關閉所有流
- * </pre>
- *
- */
- public void close(){
- if(isr != null){
- try {
- isr.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(is != null){
- try {
- is.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- if(osw != null){
- try {
- osw.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- if(os != null){
- try {
- os.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- /**
- * <pre>
- * 用io讀取檔案內容
- * </pre>
- *
- * @throws IOException
- * 讀取過程中發生錯誤
- *
- */
- /**
- * <pre>
- *
- * </pre>
- * @param path
- * @param charset
- * @throws IOException
- *
- */
-
public void read(String path, String charset)
相關推薦
java字元轉碼
java虛擬機器預設的編碼是unicode指的是記憶體中的編碼是unicode,而進行io(包括網路和硬碟)傳輸時另外編碼,通過 System.getProperty("file.encoding")檢視,通常,預設為ansi,不過通過eclipse可以配置為其他編碼
java的字元轉碼;eclipse設定UTF-8
把字符集中的字元 編碼為指定集合中某一物件(例如:位元模式、自然數序列、8位組或者電脈衝),以便文字在計算機中儲存和通過通訊網路的傳遞。 不同國家、不同計算機系統編碼方式不同; 中國大陸:GBK (規定檔案為GB13000) Unicode
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
java 檔案轉碼(gb2315,gbk,utf-8)csv,excel
最近做資料處理,需要將爬取的資料入庫,但是演算法提供的資料編碼格式和資料庫總是有出入,導致匯入的資料亂碼,所以寫一個轉碼程式,將檔案編碼轉為和資料庫一致。 package com.bjk.transcode; import java.io.FileInputStream; import j
字元轉碼開源庫libiconv目前還不支援64位
最新版的libiconv 1.14目前還不支援64位系統,只能編譯出32位庫。libiconv 1.14下載地址:libiconv介紹:linux系統編譯安裝方法:$ ./configure --prefix=/usr/local $ make $ make install執
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上獲取的字元中特殊符號如果轉碼錯誤可
HTML字元轉碼
HTML特殊字元的編碼表: 標記 編碼 實際名稱 ™ ™ € € Space   ! ! "
在js中對中文和特殊字元轉碼,js轉碼
js對文字進行編碼涉及3個函式:escape,encodeURI,encodeURIComponent,相應3個解碼函式:unescape,decodeURI,decodeURIComponent1、 傳遞引數時需要使用encodeURIComponent,這樣組合的u