BUG YUIC压缩机带有特殊字符

时间:2011-11-17 18:42:35

标签: java javascript css compression yui-compressor

我使用较新版本的YUICompressor(2.4.7)来压缩我的Javascript和CSS文件,很长一段时间,一切都显得很好......当我意识到特殊字符“í”和“Í”没有成功转换。奇怪的是,正如我们所期望的那样,另一个特殊的角色正在被转换。为什么只是“í”和“Í”没有被转换?由于这两个字符都不行,我放弃了文件系统和语言之间的Charset Conflicts。它看起来像一个bug。任何人都可以帮我解决这个问题吗?

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

转换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ãêîôûúàá";

2 个答案:

答案 0 :(得分:0)

嗯..当它只与i有关时,我会想到Turkey test

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

示例:

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

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

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

答案 1 :(得分:0)

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

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