【问题标题】:Is it possible to control Mixer.Info charset?是否可以控制 Mixer.Info 字符集?
【发布时间】:2012-04-08 07:52:32
【问题描述】:

我有俄语 Windows 7,其中一些设备以俄语命名。如果我通过 AudioSystem.getMixerInfo() 获得混音器之类的设备,我将 Mixer.Info.getName() 错误地解码为 un​​icode。

是否可以控制转换或者这是 Java 设计错误?

更新

实际上,Java 从 CP1252 解码为 un​​icode,而我的默认语言环境是 CP1251。用CP1251怎么说?

【问题讨论】:

    标签: java audio unicode internationalization mixer


    【解决方案1】:

    请看下面的链接:
    https://bugs.openjdk.java.net/browse/JDK-8177951
    http://mail.openjdk.java.net/pipermail/sound-dev/2017-June/000564.html

    所以我正在努力修复这个错误,但似乎 Oracle 中没有人回应我。我把补丁发给了bug的受理人(由我发布,由受理人管理),但他没有回复我,可能是几天后。希望这个补丁将包含在第一个 JDK9 版本中...

    【讨论】:

      【解决方案2】:

      我有同样的问题(在俄罗斯 Windows 7 中)。我认为获取俄语设备名称的唯一方法是将其转换为正确的字符集:

          for (Mixer.Info info : AudioSystem.getMixerInfo()) {
              System.out.println(new String(info.getName().getBytes("Windows-1252"), "Windows-1251"));
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-10
        • 1970-01-01
        相关资源
        最近更新 更多