Я пытался понять кодировку символов в Java. Символы в Java хранятся в 16 бит с использованием кодировки UTF-16. Поэтому, когда я конвертирую строку, содержащую 6 символов, в байт, я получаю 6 байтов, как показано ниже, я ожидаю, что это будет 12. Есть ли какая-то концепция, которую я не вижу?UTF-16 Кодировка символов java
package learn.java;
public class CharacterTest {
public static void main(String[] args) {
String str = "Hadoop";
byte bt[] = str.getBytes();
System.out.println("the length of character array is " + bt.length);
}
}
O/P: длина массива символов составляет 6
В соответствии с @Darshan При попытке с UTF-16 кодирования, чтобы получить байт результат также не ожидали.
package learn.java;
public class CharacterTest {
public static void main(String[] args) {
String str = "Hadoop";
try{
byte bt[] = str.getBytes("UTF-16");
System.out.println("the length of character array is " + bt.length);
}
catch(Exception e)
{
}
}
}
o/p: the length of character array is 14
'str.getBytes (« UTF-16 »);' , но я удивляюсь, о/р есть 14 –
да Даршан, то же самое здесь. Это должно быть 12 правильно !!! – priyaranjan
Для этого вам нужно использовать 'utf-16le' или' utf-16be' , пожалуйста, обратитесь к [link] http://rosettacode.org/wiki/String_length для получения более подробной информации. –