簡體   English   中英

編碼字符串在Java中無法正常工作

[英]Encoding string doesn't work properly in java

我正在開發JavaFX應用程序。 我需要使用波斯語言作為其節點名稱以編程方式創建TreeView
問題是我在運行應用程序時看到奇怪的字符。 我已經在網上搜索了同樣的問題。 我對一個函數進行編碼以根據相同問題的答案進行編碼:

public static String getUTF(String encodeString) {
        return new String(encodeString.getBytes(StandardCharsets.ISO_8859_1),
                         StandardCharsets.UTF_8);
}

我用它來轉換我的字符串來構建TreeView

CheckBoxTreeItem<String> userManagement = 
             new CheckBoxTreeItem<>(GlobalItems.getUTF("کاربران"));

對於某些字符,此答案無法正常工作:

在此處輸入圖片說明

我仍然得到奇怪的結果。 如果我不使用編碼,則會得到:

在此處輸入圖片說明

對於硬編碼的字符串文字,您需要告訴javac編譯器使用與Java源相同的編碼,例如UTF-8 檢查IDE /構建設置。 您可以u型逃避一些波斯語符號, 為達爾, د 如果轉義字符正確通過,則編譯器將使用錯誤的編碼。

String將始終包含Unicode,不需要new String的帶有hacking轉換的new String

在讀取帶有文本的文件時,需要將那些字節(byte / InputStream)轉換為指定這些字節編碼的java文本(String / Reader)。

暫無
暫無

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

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