2010-02-22 40 views
1

我有一個使用Flex SDK 3.3的現有項目,它爲我們的Flex應用程序中的所有靜態文本使用屬性文件。有一個具有版權符號的特定標籤,但需要將其更改爲服務標記符號。我知道有些字體可能不支持服務標記。如何在我的財產檔案中獲得服務標記?

現有文字是這樣的:?

header.productName =Acmeâ¢

文本被分配給MX:文本標籤。

我現在很確定您是如何將servicesymbol放入屬性文件的?我不確定版權符號如何/爲什麼在屬性文件中看起來像這樣。

TIA, 馬格努斯

回答

1

爲什麼你看到在你的屬性文件中的亂碼的原因可能是由於不匹配的文件編碼。換句話說,原始文件很可能是使用UTF-8或類似的東西創建的,可以顯示特殊標記(如版權符號等),但您現在正在嘗試以ASCII模式查看它,該模式將多字節字符顯示爲亂碼你看到的輸出。

(這純粹是我的一個猜測,我不知道你的設置是什麼樣子)

所有這一切不談,讓非標字符到您的屬性文件,並在Flex中顯示它們是非常簡單的。基本上,所有你需要知道的是你想要顯示的符號的HTML或Unicode編碼(可以工作)。例如,版權符號(©)的HTML編碼爲©,Unicode值爲\u00A9

你要做的就是使用這些編碼在您的屬性文件,像下面的內容:

header.productName = Acme© 

然後在你的MXML當你定義Text元素,使用htmlTextproperty,而不是text

<mx:Text id="myText" htmlText="{resourceManager.getString('someBundle', 'header.productName')}"/> 

這應該爲你做!請注意,如果您的屬性文件中包含大量這些特殊字符,則可能需要考慮使用像native2ascii這樣的工具將它們全部轉換爲您。