Есть ли Java (Android), эквивалентный VB6 Strconv - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующее в старом классе VB6, которое мне нужно переместить в класс Java в Android.

tmp = StrConv(vValue, vbUnicode, AESLOCALE)

tmp = StrConv(vData, vbFromUnicode, AESLOCALE) 

, где AESLOCALE - 1033

У меня была охота, но я не могу понять, как с этим справиться. Спасибо

1 Ответ

0 голосов
/ 11 сентября 2018

Похоже, вам просто нужно конвертировать туда и обратно между английским (локаль 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); 

Edit:

Ссылка на страницу 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...