我在旧的VB6类中具有以下内容,需要将其移至Android中的Java类。
tmp = StrConv(vValue, vbUnicode, AESLOCALE)
tmp = StrConv(vData, vbFromUnicode, AESLOCALE)
其中AESLOCALE为1033
我一直在打猎,但似乎无法解决该问题。 谢谢
答案 0 :(得分:3)
您似乎只需要在英语(语言环境1033或ISO_8859_1)和Unicode(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);
对于问题的底线,您可以使用此代码在ISO_8859_1中对unicode进行编码:
//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页面(自Java 7开始,NIO起作用):
https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html