javautf8
1. java怎麼設置為utf-8的編碼
要讓一個
Java
源文件打開時編碼格式為
UTF-8,需要做2件事情:
1)設置Java
源文件的默認編碼格式為UTF-8;
2)設置workspace的編碼格式為UTF-8。
相應設置如下:
設置
Java
源文件的默認編碼格式為
UTF-8
在
Windows->Preference
頁面中,選擇
General->Content
Types
在右邊的框中,選擇
Text->Java
Source
File,將下面的
Default
Encoding
改為
UTF-8
設置
workspace
的編碼格式為
UTF-8
在
Windows->Preference
頁面中,選擇
General->WorkSpace
選擇右側框中的
Text
File
encoding,改為
UTF-8
設置完這2處,默認打開
Java
源文件就是UTF-8編碼了。
2. java怎麼設置utf8
伺服器端
修改資料庫配置文件/etc/my.cnf
character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci
重啟MySQL(按照官方文檔,這兩個選項都是可以動態設置的,但是實際的經驗是Server必須重啟一下)
已有的表修改編碼為utf8mb4
ALTER TABLE
tbl_name
CONVERT TO CHARACTER SET
charset_name;
使用下面這個語句只是修改了表的default編碼
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4;
客戶端
jdbc的連接字元串不支持utf8mb4,這個 這種方式 來解決的,如果伺服器端設置了character_set_server=utf8mb4,則客戶端會自動將傳過去的utf-8視作utf8mb4。
Connector/J did not support utf8mb4 for servers 5.5.2 and newer.
Connector/J now auto-detects servers configured with character_set_server=utf8mb4 or treats the Java encoding utf-8 passed using characterEncoding=... as utf8mb4 in the SET NAMES= calls it makes when establishing the connection. (Bug #54175)
其他的client端,比如php、python需要看下client是否支持,如果不能在連接字元串中指定的話,可以在獲取連接之後,執行」set names utf8mb4″來解決這個問題;
因為utf8mb4是utf8的超集,理論上即使client修改字元集為utf8mb4,也會不會對已有的utf8編碼讀取產生任何問題。
3. 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;
(3)javautf8擴展閱讀:
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填補。
4. 怎麼用java把一個字元串進行utf8編碼
String text = 「字元串」;
byte[] b_utf8 = text.getBytes("UTF-8"); //utf-8
byte[] b_iso88591 = text.getBytes("ISO8859-1"); //iso8859-1
byte[] b_gbk = text.getBytes("GBK"); //gbk
string unicode = getUnicode(text);//unicode
public static String getUnicode(String source) {
String result = "";
for (int i = 0; i < source.length(); i++) {
result += "\u"+Integer.toHexString((int) source.charAt(i));
}
return result;
}
5. 怎麼使java輸出的文件以UTF-8編碼
代碼如下:
(Stringname)throwsFileNotFoundException,UnsupportedEncodingException{
FileOutputStreamoutputStream=newFileOutputStream(name);
=newOutputStreamWriter(outputStream,"utf-8");
BufferedWriterwriter=newBufferedWriter(outputWriter);
returnwriter;
}
6. 怎麼用java輸出一個正確的utf-8文件
該方法是這樣一種方法java.io.DataOutput中的介面。點擊看詳細下面是一個參考JDK1.5:點擊看詳細java.io
介面DataOutput中
中國所有已知子介面:
的ImageOutputStream,
的ObjectOutput
中國所有已知實現類:
DataOutputStream正好,FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream,ObjectOutputStream中,RandomAccessFile的 BR>
中國公共介面DataOutput中點擊看詳細的DataOutput介面,任何Java原始類型到一系列的位元組,寫這些位元組轉換為二進制流。它也提供了一個串將被轉換成UTF-8格式的版本,並寫入所得到的系列工具位元組。說明
中國
看writeInt()方法:點擊看詳細writeIntvoid writeInt(int v)按拋出IOException異常,點擊看詳細
1寫入到輸出流int值,它由4個位元組。要寫入的位元組值(按順序)為:
(位元組)(0xFF的&(V >> 24))
中國(位元組)(0xFF的& (V >> 16))
中國(位元組)(0xFF的&(V >> 8)),點擊看詳細
(位元組)(0xFF的&V)的
位元組寫這個方法可以讀取的readInt方法DataInput中的介面,則該方法返回一個int值,等於V的。
中國
中國參數:
V - int值寫入。點擊看詳細上面的描述中,此方法被用於一個4位元組整數數據轉換成一個位元組,然後寫入到二進制流。如果你寫一個文件,那麼該文件是一個二進制文件,而不是文本文件。
中國
在使用時,如果你使用writeInt()這樣的方法(writeDouble,writeFloat等),然後讀取時間,則必須使用該介面實現DataInput中讀取輸入流。還要寫的順序讀取:示例:
中國com.test包;點擊看詳細進口java.io.BufferedInputStream中;
進口java.io.BufferedOutputStream;
進口java.io.ByteArrayInputStream中;
進口java.io.ByteArrayOutputStream中;
進口java.io.DataInput中的;
進口java.io.DataInputStream中;
進口java.io.DataOutput中;
進口java.io.DataOutputStream中;點擊看詳細公共類的數據流中{
公共靜態無效的主要(字串[] args){
嘗試{//
這里是輸出,這里是輸出到存儲
ByteArrayOutputStream BOS =新ByteArrayOutputStream();
DataOutputStream的DOS =新DataOutputStream的(新的BufferedOutputStream(BOS));
dos.writeInt(22);
dos.writeDouble(33.33);
dos.writeLong(33升);
dos.writeBoolean(真正的);
dos.writeChar('A');
dos.writeByte(33);
dos.writeFloat(44.4f);
dos.flush();
//這里是從內存中輸入在這里,只需輸入
的DataInputStream解散=新的DataInputStream(新的BufferedInputStream為(新ByteArrayInputStream的(bos.toByteArray())));
的System.out.println(dis.readInt());
的System.out.println(dis.readDouble());
的System.out.println(dis.readLong());
的System.out.println(dis.readBoolean());
的System.out.println(dis.readChar());
系統。通過out.println(dis.readByte());
的System.out.println(dis.readFloat());
dis.close();
bos.close();
}趕上(例外五){
}
}點擊看詳細}
中國 BR>
上述程序最後的列印語句,可以更改順序,結果應該是因為你不寫的一樣,那就是,造成讀取錯誤,因為一些想讀,寫的順序相同。
7. java怎麼把把字元轉成utf-8
java不同編碼之間進行轉換,都需要使用unicode作為中轉。
以utf-8轉gbk為例,示例代碼如下:
String t = "這是一個字元串aaa111";
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);
8. java下如何設置utf-8
可以直接在開發工具中設置java文件的編碼:
eclipse文件編碼設置:
1. 點擊window。
2. 在列表最下點擊reference。
3. 在reference界面點擊Workspace
4. 在右邊的Tex file encoding點擊Other。
5. 選擇 GBK或者 UTF-8編碼即可。
9. 怎麼在java里設置utf-8
如圖所示,右鍵點擊文件名,在右鍵菜單里選擇 Properties,可以設置文件編碼,選擇UTF-8就可以了
10. 怎麼在java里設置utf-8
如圖所示,右鍵點擊文件名,在右鍵菜單里選擇
Properties,可以設置文件編碼,選擇UTF-8就可以了