我正在使用 YUI JavaScriptCompressor 即时压缩 JavaScript,并且一个 JavaScript 文件包含俄语和其他语言字母,除此之外,如果我当前的线程文化设置为 hr-HR,那么它会将小数分隔符从“。”更改为 到 ',' !?
这里是例子,克罗地亚文化
Thread.CurrentThread.CurrentCulture = new CultureInfo("hr-HR");
string js = "var dd = 0.9; var tt = 'Хорватия'";
string compressed = JavaScriptCompressor.Compress(js);
变量压缩的值为:
var dd=0,9;var tt="????????";
更改了小数分隔符,单引号变为双引号,俄语脚本丢失。如果我将当前文化设置为 en-US,则压缩为:
var dd=0.9;var tt="????????";
现在小数分隔符没有改变,但所有其他问题都存在,即使我将文化设置为俄语(“ru-RU”),俄语脚本仍然作为问号返回。
我完全感到困惑,所以我的问题是我在哪里可以设置编码和其他选项来改变这种行为,我看到的唯一会影响这种压缩的是 Compress 方法中的参数,但这些都没有帮助。
更新 1
我查看了源代码,有一种设置编码的方法,但是 YUI Compressor 仍在更改我的小数分隔符,这是代码:
Thread.CurrentThread.CurrentCulture = new CultureInfo("hr-HR");
string js = "var dd = 0.9; var tt = 'Хорватия'";
JavaScriptCompressor jsc = new JavaScriptCompressor(js, false, Encoding.UTF8, CultureInfo.InvariantCulture);
string compressed = jsc.Compress();
结果是:
var dd=0,9;var tt="Хорватия";
将第 4 个参数中的文化更改为“en-US”也无济于事。