2017-09-22 20 views
0

UTF 16をUTF 8(メソッドの使用方法:toUTF8Array)コードをjavascriptに変換し、ajax呼び出しからコードを送信しました。 (注:!UTF 16の文字は醜いであり、それは私がいけないのエンコーディングを必要) JSコード:UTF 16文字列(実際のutf 16文字)にUTF 8文字列コードを変換する(実際のutf 16文字)

var compressed = LZString.compressToUTF16(uncompressed64Data); 
var utf8values = toUTF8Array(compressed); 
    jQuery.ajax({ 
data :"img=+" utf8values 
} 

私は次のようにJavaのサーバー側のUTF-8コードを受けています

String utf8values = request.getParameter("img"); 

fyi、sopの結果: utf8values:225,186,162,227,160,181,229 、160,165

コードを実際のUTF 16文字列に変更しますか?

ありがとうございます!

+0

あなたが持っている ' "225,186,162,227,160,181,229,160,165"'実際の文字列ですか? – Oleg

+0

はい。これは私が与えられたサンプルです –

+0

だから ''Ả㠵堥'であると思いますか? – Oleg

答えて

1

次は動作するはずです:

String[] split = "225,186,162,227,160,181,229,160,165".split(","); 
ByteBuffer bb = ByteBuffer.allocate(split.length); 
Arrays.stream(split).forEach(a -> bb.put((byte)Integer.parseInt(a))); 
bb.flip(); 
String string = Charset.forName("UTF-8").decode(bb).toString(); 
+0

すばらしい答えです。私はあなたがこのJava 1.7を抽出することができればもっと幸せだろう。ありがとうございました –

+1

@WillMcavoy私はちょっと簡潔に 'forEach'をループに置き換えて使用しました。 – Oleg

関連する問題