有時會產生字串過長,導致無法寫入資料庫的情況.
這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度
JAVA 依 不同編碼, 其長度是不一樣的
如:
String c_str = "臺北市私立國際醫療長期照顧中心(養護型)";
byte[] BIG5B = c_str .getBytes("BIG5");
byte[] UTF8B = c_str .getBytes("UTF-8");
byte[] U16LEB = c_str .getBytes("UTF16LE");
System.out.println( BIG5B .length ); // 38 : BIG5編碼每個中文字為 2 Bytes, 英數符號 為 1 Bytes
System.out.println( UTF8B .length ); // 56 : UTF-8編碼每個中文字為 3 Bytes 英數符號 為 1 Bytes
System.out.println( U16LEB .length ); // 40 : U16LEB UNICODE 編碼
Byte Array 擷取字串 (由 Byte 轉換 為字串 )
byte[] n_UTF8B = Arrays.copyOfRange( UTF8B , 0, 50 );
String n_str = new String( n_UTF8B, "UTF-8");
轉成字串後, 部分中文字會被切成一半造成亂碼!! 須注意
沒有留言:
張貼留言