有没有等价于VB6 Strconv的Java(Android)
Is there a Java (Android) equivalent to VB6 Strconv
我在旧的 VB6 class 中有以下内容,我需要移动到 Android 中的 Java class。
tmp = StrConv(vValue, vbUnicode, AESLOCALE)
tmp = StrConv(vData, vbFromUnicode, AESLOCALE)
其中 AESLOCALE 为 1033
我四处寻找,但似乎无法弄清楚如何解决这个问题。
谢谢
看来您只需要在英语(语言环境 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);
编辑:
Link 到 Android 字符集页面(自 Android 4.4 起可用):
https://developer.android.com/reference/java/nio/charset/StandardCharsets
Link 到 Java 字符集页面(NIO 从 Java 7 开始工作):
https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html
我在旧的 VB6 class 中有以下内容,我需要移动到 Android 中的 Java class。
tmp = StrConv(vValue, vbUnicode, AESLOCALE)
tmp = StrConv(vData, vbFromUnicode, AESLOCALE)
其中 AESLOCALE 为 1033
我四处寻找,但似乎无法弄清楚如何解决这个问题。 谢谢
看来您只需要在英语(语言环境 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);
编辑:
Link 到 Android 字符集页面(自 Android 4.4 起可用):
https://developer.android.com/reference/java/nio/charset/StandardCharsets
Link 到 Java 字符集页面(NIO 从 Java 7 开始工作):
https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html