2011-01-06 99 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