将ANSI(Windows-1252)中的字符串转换为UTF-8

时间:2018-02-24 17:27:57

标签: java utf-8

  

我有以下字符串日期=“13 - فبراير”,

使用以下编码的月份地图:

    Map<Integer, String> months = new LinkedHashMap<>();
    months.put(1, "يناير");
    months.put(2, "Ùبراير");
    months.put(3, "مارس");
    months.put(4, "ابريل");
    months.put(5, "مابو");
    months.put(6, "يونيو");
    months.put(7, "يوليو");
    months.put(8, "اغسطس");
    months.put(9, "سبتمبر");
    months.put(10, "اكتوبر");
    months.put(11, "نوÙمبر");
    months.put(12, "ديسمبر");

我想要的是确定输入的月份

for (Map.Entry<Integer, String> entry : months.entrySet()) {
            int key = entry.getKey();
            String value = months.get(key);
            if (input.contains(value)) {
                System.out.println("YES");
                break;
        } 
   }

但条件永远不会成立,因为编码不同,所以我必须每个月从ANSI转换为UTF-8才能获得正确的月份。

我尝试了以下内容:

    byte[] ptext = text.getBytes(Charset.forName("windows-1252")); 
    String value = new String(ptext, StandardCharsets.UTF_8); 
    System.out.println(value);

但它不起作用。

0 个答案:

没有答案