是否有与VB6 Strconv等效的Java(Android)

时间:2018-09-11 04:27:35

标签: java android vb6 strconv

我在旧的VB6类中具有以下内容,需要将其移至Android中的Java类。

tmp = StrConv(vValue, vbUnicode, AESLOCALE)

tmp = StrConv(vData, vbFromUnicode, AESLOCALE) 

其中AESLOCALE为1033

我一直在打猎,但似乎无法解决该问题。 谢谢

1 个答案:

答案 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