有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

是否有Java(Android)与VB6 Strconv等价

我在一个旧的VB6类中有以下内容,我需要在Android中转移到一个Java类

tmp = StrConv(vValue, vbUnicode, AESLOCALE)

tmp = StrConv(vData, vbFromUnicode, AESLOCALE) 

这里是1033

我四处寻找,但似乎不知道如何解决这个问题。 谢谢


共 (1) 个答案

  1. # 1 楼答案

    看起来你只需要在英语(语言环境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页面(NIO从Java 7开始工作):

    https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html