【问题标题】:Adobe Flex unicodeRangeAdobe Flex unicodeRange
【发布时间】:2011-01-06 13:03:11
【问题描述】:

我有一个 flex 应用程序,其中字体样式设置如下:

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

U+a3 的 unicode 范围允许用户输入 £(英镑符号)。

当在 flex 中输入这些数据并保存到数据库时,£ 符号前面会添加一些奇怪的字符,例如“Âã”。我调试了 flex 应用程序,并停止了保存操作的代码,而有问题的控件确实在保存变量中显示了奇怪的字符。所以,错误似乎是在 flex 端创建的。

然后我按如下方式更改了字体,删除了所有 unicode 引用

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

这似乎有所改善,但数据现在保存为“£”。单步执行代码显示该字符仅作为 £ 发送到服务器,因此似乎现在在数据库端创建了错误

我可能在这里遗漏了一些明显的东西。理想情况下,我希望 unicode 范围尽可能小。

【问题讨论】:

  • 我也尝试过如下设置 unicodeRange:@font-face { fontFamily: Arial;字体重量:正常;字体样式:正常; src: local("Arial"); unicodeRange:U+0021-U+007E,U+00A3-U+00A3; } 这导致了适度的改进,尽管该项目仍被保存为 £

标签: apache-flex unicode


【解决方案1】:

MySQL or PHP is appending a  whenever the £ is used 偶然发现了一个类似的问题,我意识到数据库将项目保存为英镑是完全正确的。

然而,重要的是,unicodeRange 必须是 U+00A3-U+00A3 而不是 U+a3-U+a3

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2012-01-18
  • 2011-11-01
  • 2010-09-05
相关资源
最近更新 更多