我使用较新版本的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ãêîôûúàá";
答案 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字符,因此您可能会错过上述步骤之一。