Используйте char[]
вместо и добавить их один за другим, используя этот метод:
public char[] generatePath(String a, String b){
if(a==null || b==null)
return null;
char[] result = new char[a.length() +b.length()];
for(int i=0;i<a.length();i++)
result[i]=a.charAt(i);
for(int i=a.length();i<a.length()+b.length();i++)
result[i]=a.charAt(i);
return result;
}
Это будет гарантировать, что каждый персонаж находится в правильном месте.
String
объекты в Java не имеют кодировки (*).
Единственное, что имеет кодировку, это byte[]
. Поэтому, если вам нужны данные UTF-8, вам нужен byte[]
. Если у вас есть String
, что содержит непредвиденные данные, тогда проблема находится в каком-то более раннем месте , что некорректно преобразует некоторые двоичные данные в String
(т. Е. Это было с неправильной кодировкой).
(*) это не совсем точно. На самом деле они имеют кодировку, но это UTF-16 и не могут быть изменены. источник: answer
То, что вы должны сделать, это использовать Byte[]
вместо строки
Попробуйте this
Charset.forName("UTF-8").encode(myString);
или this
byte[] ptext = String.getBytes("UTF-8");
Преобразовать эту строку в UTF-8 формат, а затем попытаться добавить его, так что будет работать для и –
Я попробовал последний пример HTTP: // StackOverflow. com/questions/3161712/how-do-i-convert-a-string-to-utf-8-in-android, все еще не работает:/ –
Просто, чтобы было ясно, неанглоязычный язык написан справа -Left, в отличие от английского, который слева направо –