我有一个使用Flex SDK 3.3的现有项目,该项目使用Flex文件中所有静态文本的属性文件。有一个特定的标签有版权符号,但需要更改为服务标记符号。我知道某些字体可能不支持服务标记。
现有文字如下:
header.productName =Acmeâ?¢
文本被分配给mx:Text标签。
我现在确定你是如何将servicesymbol输入属性文件的?我不确定版权符号在属性文件中是如何/为何如此。
TIA, 马格努斯
答案 0 :(得分:1)
您在属性文件中看到乱码文本的原因可能是由于文件编码不匹配。换句话说,原始文件可能是使用UTF-8或类似的东西创建的,可以显示特殊标记,如版权符号等,但您现在正试图以ASCII模式查看它,将多字节字符显示为乱码你看到的输出。
(这纯粹是我的猜测,我不知道你的设置是什么样的)
除此之外,将非标准字符放入属性文件并在Flex中显示它们非常简单。基本上,您需要知道的是要显示的符号的HTML或Unicode编码(要么可以工作)。例如,版权符号(©)的HTML编码为©
,Unicode值为\u00A9
。
您所做的就是在属性文件中使用这些编码,如下所示:
header.productName = Acme©
然后在定义Text
元素的MXML中,使用htmlText
property,而不是text
:
<mx:Text id="myText" htmlText="{resourceManager.getString('someBundle', 'header.productName')}"/>
那应该为你做到的!
作为旁注,如果您的属性文件中有很多这些特殊字符,您可能需要考虑使用native2ascii之类的工具将它们全部转换为您。