有关于JAVA与后端C应用UTF8字符的通信
生活随笔
收集整理的這篇文章主要介紹了
有关于JAVA与后端C应用UTF8字符的通信
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
后端有C寫的服務程序,它只能接受UTF-8的字符串,并將響應
以UTF-8的形式送出。
JAVA連接該程序時,用CORBA哦
1、
直接定義字符串:
String str = "我是好人",時CORBA發(fā)出錯誤信息表示有不識別的字符
經(jīng)過如下轉換后
String newreq = new String(str.getBytes("UTF-8"),"ISO-8859-1");
將newreq送到服務端,后端得到了正確的UTF-8字符。
2、
同時,如果將服務端返回的UTF-8字符直接打印到控制臺上,發(fā)現(xiàn)是亂碼,
用以下方法:
localstr = new String(str.getBytes("ISO-8859-1"), "UTF-8");
localstr打出了正常的字符
寫這個小文章并不想說明什么,主要是因為前端時間看到類似的文章,比如,
告訴你:String str = new String(str.getBytes("ISO-8859-1"),"UTF-8")就能
得到UTF-8字符,這種說法是片面的,關鍵是看字符本身的編碼是什么才是最重要的。
象在第二步中,為什么拿回來的UTF-8打印不出來,非得象上面處理過后才行呢?
主要是JAVA收到串后認為它是ISO-8859-1,但實際通過它得到的BYTE序列應該用
UTF-8解碼才是正確的
總結
以上是生活随笔為你收集整理的有关于JAVA与后端C应用UTF8字符的通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 0713
- 下一篇: 有关于微软的IWebBrowser2::