uploadify 目前不能正确显示中文的按钮文本。

我发现bug的原因是uploadify错误的使用了 js 的 escape 和 flash 的 unescape配对,而这2个是不兼容的。正确的转码传递参数应该用 encodeURI/decodeURI 配对,这2个函数的行为在js和flash里是相同的。其他地方的escape/unescape也应该替换掉,下面只修改影响按钮文本的部分。

1. jquery.uploadify.v2.1.4.js 70行 
将if (settings.buttonText) data.buttonText = escape(settings.buttonText);
改为 if (settings.buttonText) data.buttonText = encodeURI(settings.buttonText);

2. uploadify.fla scene 1 脚本文件117行 
将 browseBtn.empty.buttonText.text = unescape(param.buttonText);
改为browseBtn.empty.buttonText.text = decodeURI(param.buttonText);

3. uploadify.fla Scene 1\ empty\ buttonText 的UI属性 
必须使用设备字体(比如_sans)而不是嵌入字体。

然后用修改过的fla重新生成 swf 文件。

 
04-28 13:46