首先将音标用String型的charCodeAt方法取得音标字符的Unicode 字符代码,然后在用String的静态方法fromCharCode在转成Unicode 字符就可以了。在xp与win7上测试成功。 然后将字体设成fontFamily="Charis SIL,Doulos SIL,Gentium,Arial Unicode MS,Lucida Sans Unicode,Arial,Serif" 下面是测试源程序 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:TextInput text="源:" x="18" y="17" width="38"/> <s:Label text="结果:" x="11" y="157"/> <mx:TextInput id="source" text="ˌæbdʒʊ`reʃən" x="68" y="17" width="604" change="source_change()" /> <s:TextArea id="test1" fontFamily="Charis SIL,Doulos SIL,Gentium,Arial Unicode MS,Lucida Sans Unicode,Arial,Serif" fontSize="40" x="68" y="56" height="174"/> <fx:Script> <![CDATA[ public function init():void { var a:String=source.text; var result:String=""; for (var i:int=0; i < a.length; i++) { result=result + String.fromCharCode(a.charCodeAt(i)); } test1.text=result; } private function source_change():void { var a:String=source.text; var result:String=""; for (var i:int=0; i < a.length; i++) { result=result + String.fromCharCode(a.charCodeAt(i)); } test1.text=result; } ]]> </fx:Script> </s:Application>