Кодиране на низ в UTF-8
Имам низ със символ "ñ" и имам някои проблеми с него. Трябва да кодирам този низ в кодиране UTF-8. Опитах да го направя по този начин, но не се получи:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
Как да кодирам този низ в UTF-8?
176
3
Какво ще кажете за използването на
Обектите
String
в Java използват кодиране UTF-16, което не може да се променя.Единственото нещо, което може да има различно кодиране, е
byte[]
. Така че, ако ви трябват данни в UTF-8, тогава ви трябвабайт[]
. Ако иматеString
, който съдържа неочаквани данни, тогава проблемът е на някое по-ранно място, което неправилно е преобразувало някои двоични данни вString
(т.е. използвало е неправилно кодиране).Използвайте
byte[] ptext = String.getBytes("UTF-8");
вместоgetBytes()
.getBytes()
използва така нареченото "кодиране по подразбиране", което може да не е UTF-8.