簡體   English   中英

無法顯示特殊字符

[英]Not able to display special characters

我無法在屏幕上顯示特殊字符(拋光字符)。 我有一個要求,我從數據庫中獲取具有一些特殊字符的數據。 我以xml格式獲取數據(xml沒有將其識別為字符串)並將其傳遞給我嘗試顯示數據的操作。 我試圖將特殊字符的Uniciode作為ł 但是當我嘗試顯示時,這會被轉換為ł 因此我無法顯示它,因為它不會將其作為字符串。

String ex1="ł";
System.out.println("ex1...."+ex1);
output:: ?

我試圖使用以下代碼獲取Unicode ::

    public static String convert (String str) throws UnsupportedEncodingException
    {
        String tc = str;
        String output = "";
        char[] ca = tc.toCharArray();
        for (int i = 0; i < ca.length; ++i) 
             {
               char a = ca[i];
               if ((int) a > 255) 
                    {
            output += "&"+"#X"+ Integer.toHexString((int) a) + ";";
               } 
                   else 
                   {
            output += a;
              }
        }
        return output;
    }

輸出為:如果輸入為str="ł"output=&#X142;

不要重新發明輪子! 使用Apache Commons Lang庫中的StringEscapeUtils類的escapeXml方法,這樣就可以實現這個簡單的解決方案:

StringEscapeUtils.escapeXml(input);

將頁面的內容類型設置為UTF-8。

還要確保將響應頭設置為UTF-8。 請參閱 - http://www.w3.org/International/O-HTTP-charset.en.php

當您想在控制台窗口中編寫波蘭字符時使用(重定向System.out !!!)

請看: UTF-8 CJK字符不在Java中顯示

我測試過:

System.setOut(new PrintStream(System.out, true, "Cp852"));

System.out.println("ex1...."+ex1);

......它的工作原理!!!! - 在cmd窗口中顯示拋光字母。

Powodzenia!

我不是你問什么(是否要保存字符為XML,打印到控制台等),但這樣做的unicode你前綴為\\ uXXXX Unicode代碼點積極肯定,因此,例如

String str = "\u00F6";
char c = '\u00F6';

將是角色ö。

請注意, 此處已取消輸入鏈接描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM