[英]Java - Objective C char UTF-8 issue
我對Java UTF-8轉換有一點問題。我有這個Objective C代碼:
const char *p = [[NSString stringWithFormat:@"0x%@",md5Hash] UTF8String];
其中md5Hash是NSString
,我需要找到一種方法來在Java中聲明相同的char p
,但沒有找到如何將char設置為UTF-8。
有什么想法或建議嗎?
我不了解Objective C,但是在Java中,chars是UTF-16,而Strings 內部 char緩沖區就是這種方式。 如果需要,可以從和轉換為UTF-8:
// creates a String from the bytes understanding them as UTF-8 chars
byte[] data = ...
new String(data, "UTF-8");
要么
// get the bytes that would represent that string in UTF-8
String myString = "Hello";
myString.getBytes("UTF-8");
希望能幫助到你...
注意:如果您需要流解決方案,則還可以使用InputStreamReader和OutputStreamWriter進行此非常相同的轉換,但這是另一回事了...
在Java中,字符串包含Unicode字符,在將其轉換為字節數組之前,您無需關心其編碼。 查看String.getBytes(String charsetName)
。 如果您有一個字節數組並希望將其設置為字符串,則還需要指定編碼。 String類具有一個構造函數,您可以在其中傳遞一個字節數組及其編碼作為參數。
IO類還具有一種使用特定編碼向二進制流寫入字符串或從二進制流讀取字符串的方法。 查看OutputStreamWriter
和InputStreamReader
的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.