1

我正在使用更新版本的 YUICompressor (2.4.7) 来压缩我的 Javascript 和 CSS 文件,很长一段时间以来,一切都很好……当我意识到特殊字符“í”和“Í”不是转换成功。奇怪的是,另一个特殊字符正在按我们的预期进行转换。为什么只有“í”和“Í”没有被转换?因为只有这两个字符不行,所以我丢弃了文件系统和语言之间的字符集冲突。它看起来像一个错误。谁能帮我解决这个问题?

看看我转换文件时会发生什么:

转换 CSS

从:

@import url("/láÍíàyout.css");

至:

@import url("/lá�?íàyout.css");

转换 JS

从:

var x = 'cícÍsúlúm irmãêîôûúàá';

至:

var x="c�c�?súlúm irmãêîôûúàá";
4

2 回答 2

0

你的字符集是 UTF-8 吗?如果是其他,您是否指定它(作为命令行,或作为 InputStreamReader/OutputStreamWriter 的参数)?如果用作 servlet,您是否在请求和响应上都设置了编码?

我今天已将 yui 压缩器与我的应用程序(版本 2.4.7)集成,它可以正确处理 unicode 字符,因此您可能缺少上述步骤之一。

于 2012-01-13T15:12:22.647 回答
0

嗯..当它只与iTurkey test有关时,我想到了。

土耳其语的大写字母i不是I,而是I带有一个点。当字符串操作与toUpperCase()或其他东西一起使用时,您必须注意,否则您的程序将无法在土耳其操作系统上正常运行。

例子:

"fail".toUpperCase().equals("FAIL")

此代码尝试进行不区分大小写的字符串比较,但在土耳其系统上失败。

当您使用土耳其系统时,请尝试在另一个非土耳其系统上运行它,并告诉我们 YUICompressor 的错误是否仍然存在。

于 2011-11-17T19:07:14.193 回答