Есть ли Java (Android), эквивалентный VB6 Strconv
У меня есть следующее в старом классе VB6, что мне нужно перейти на класс Java в Android.
tmp = StrConv(vValue, vbUnicode, AESLOCALE)
tmp = StrConv(vData, vbFromUnicode, AESLOCALE)
где AESLOCALE 1033
У меня была охота, но я не могу понять, как с этим справиться. Спасибо
1 ответ
Похоже, вам просто нужно конвертировать туда и обратно между английским языком (локаль 1033 или ISO_8859_1) и юникодом (UTF_16).
Во-первых, убедитесь, что вы импортировали кодировки:
import static java.nio.charset.StandardCharsets.*;
Для верхней строки в вашем вопросе вы можете использовать это для кодирования кодировки в UTF-16:
//Convert to unicode/UTF_16:
byte[] engilshBytes = myString.getBytes(ISO_8859_1);
String unicodeValue = new String(engilshBytes, UTF_16);
В нижней строке вашего вопроса вы можете использовать это для кодирования Unicode в ISO_8859_1:
//Convert to english/ISO_8859_1:
byte[] unicodeBytes = myString.getBytes(UTF_16);
String englishValue = new String(unicodeBytes, ISO_8859_1);
Редактировать:
Ссылка на страницу Android для наборов символов (работает с Android 4.4):
https://developer.android.com/reference/java/nio/charset/StandardCharsets
Ссылка на страницу Java по наборам символов (NIO работает с Java 7):
https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html