2011-01-06 131 views
0

我有一個Flex應用程序,其中的字體樣式已設置如下:Adob​​e Flex的unicodeRange

@font-face { 
    fontFamily: Arial; 
    fontWeight: normal; 
    fontStyle: normal; 
    src: local("Arial"); 
    unicodeRange: U+0021-U+007E, 
    U+a3-U+a3; 
} 

ü的Unicode範圍+ A3允許用戶輸入的£(英鎊符號)。

在Flex中輸入數據並保存到數據庫時,英鎊符號前面加上了一些奇怪的字符,例如「ÃÃÃã£」。我調試了Flex應用程序,並在保存操作中停止了代碼,並且有問題的控件確實在保存變量中顯示了怪異字符。所以,錯誤似乎是在靈活的一面創建的。

然後我改變了字體如下,刪除任何Unicode引用

@font-face { 
    fontFamily: Arial; 
    fontWeight: normal; 
    fontStyle: normal; 
    src: local("Arial"); 
} 

這似乎有所改善,但現在的數據被保存爲「£」。逐步執行代碼顯示的字符只被通過對服務器作爲£發送,所以它會似乎現在在數據庫方面

我可能丟失的東西在這裏很明顯創建的錯誤。理想情況下,我想保持unicode範圍儘可能小。

+0

我也曾嘗試設置unicodeRange如下: @字體面{ fontFamily中:Arial; fontWeight:正常; fontStyle:normal; src:local(「Arial」); unicodeRange:U + 0021-U + 007E, U + 00A3-U + 00A3; } 這會導致適度的改善,儘管該項目仍然保存爲£ – JonoB 2011-01-06 13:21:27

回答

0

在偶然發現了一個類似的問題MySQL or PHP is appending a  whenever the £ is used後,我意識到它完全正確的是數據庫將項目保存爲£。

重要的,但是,unicodeRange必須是U + 00A3-U + 00A3而不是U + A3-U + A3

+0

此外,amfphp也需要正確設置:http://ghalex.com/blog/as3flexdb-and-utf8 – JonoB 2011-01-07 17:54:49