Есть ли 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

Другие вопросы по тегам