[英]java 7 decode base64 String with accent
I have a problem to decode a string encoded with pl/sql encoded with oracle pl/sql like this 我在解码像这样用Oracle pl / sql编码的pl / sql编码的字符串时遇到问题
SET SERVEROUTPUT ON DECLARE
l_vc_var1 VARCHAR2(32767):='nat=Assurés%20CNRPS';
l_rw_var2 RAW(32767);
BEGIN
dbms_output.put_line('Original string: '||l_vc_var1);
l_rw_var2:= utl_raw.cast_to_raw(l_vc_var1);
dbms_output.put_line('Original RAW string: '||l_rw_var2);
l_rw_var2:= utl_encode.base64_encode(l_rw_var2);
dbms_output.put_line('Encoded RAW string: '||l_rw_var2);
l_rw_var2:= utl_encode.base64_decode(l_rw_var2);
dbms_output.put_line('Decoded RAW string: '||l_rw_var2);
l_vc_var1:=utl_raw.cast_to_varchar2(l_rw_var2);
dbms_output.put_line('Decoded Original string: '||l_vc_var1);
END;
/
The result in sqldeveloper: sqldeveloper中的结果:
Original string: nat=Assurés%20CSS Original RAW string: 6E61743D4173737572E973253230435353 Encoded RAW string: 626D46305055467A6333567936584D6C4D6A424455314D3D Decoded RAW string: 6E61743D4173737572E973253230435353 Decoded Original string: nat=Assurés%20CSS
原始字符串:nat =Assurés%20CSS原始RAW字符串:6E61743D4173737572E973253230435353编码的RAW字符串:626D46305055467A6333567936584D6C4D6A424455314D3D解码的RAW字符串:6E61743D4173737572E973253230435s解码的原始字符串:nat = 20
I want to decode the String with Java like this: 我想像这样用Java解码String:
try {
String base64 = "6E61743D4173737572E973253230435353";
BigInteger bi = new BigInteger(base64, 16);
byte[] bdata = bi.toByteArray();
String temp = new String(bdata, "UTF-8");
System.out.println("temp = " + temp);
} catch (Exception ex) {
ex.printStackTrace();
}
unfortanly the accent is not correct with java result : 不幸的是,重音与java结果不正确:
temp = nat=Assur s%20CSS
temp = nat = Assur%20CSS
new String(bdata, "ISO-8859-1")
, ISO Latin-1. new String(bdata, "ISO-8859-1")
,ISO Latin-1。
"Windows-1252"
, MS Windows Latin-1, would be a superset, and probably was used by SQLDeveloper. "Windows-1252"
(MS Windows Latin-1)将是一个超集,并且可能已由SQLDeveloper使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.