.net 雅虎YUI压缩程序UTF-8和文化支持

.net 雅虎YUI压缩程序UTF-8和文化支持,.net,utf-8,cultureinfo,yui-compressor,.net,Utf 8,Cultureinfo,Yui Compressor,我正在使用YUI JavaScriptCompressor动态压缩JavaScript,其中一个JavaScript文件包含俄语和其他语言的字母,除此之外,如果我当前的线程区域设置为hr hr,那么它会将十进制分隔符从“.”改为“,!?” 以下是克罗地亚文化的例子 Thread.CurrentThread.CurrentCulture = new CultureInfo("hr-HR"); string js = "var dd = 0.9; var tt = 'Хорватия'";

我正在使用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);
变量compressed的值为:

var-dd=0,9;var tt=“???????”

小数分隔符更改,单引号变为双引号,俄文脚本丢失。如果我将当前区域设置为en US,则压缩为:

var-dd=0.9;var tt=“???????”

现在小数点分隔符保持不变,但所有其他问题都存在,即使我将区域性设置为俄语(“ru-ru”),俄语脚本仍然以问号的形式返回

我完全搞不懂,所以我的问题是我在哪里可以设置编码和其他选项来改变这种行为,我看到唯一能影响这种压缩的是压缩方法中的参数,但这些都没有帮助

更新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”也没有帮助。

我使用的1.7.0.0版本中似乎有一个bug,当我升级到1.7.1.0时,此代码按预期工作:

  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();

我使用的1.7.0.0版本中似乎有一个bug,当我升级到1.7.1.0时,这段代码按预期工作:

  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();

运行压缩
js
use标志时:
--nomunge

运行压缩
js
时使用标志:
--nomunge