我正在使用handlebars.js和JSON数据来填充我的HTML。如果我调用一个CJK unicode字符的JSON密钥,我的测试将失败。 是否有任何解决方法可以使用handlebars.js成功处理(CJK)unicode键?
这有效[1]:
var source2 = '<p>{{blatitle}}<br />{{bla.zht}}} / {{bla.pyn}} / {{bla.dfn}}</p>';
var template = Handlebars.compile(source2);
var html = template(jsonDictSample);
$('#container2')
.append(html);
这不起作用(重复案例,只将密钥'bla'更改为unicode'口'作为密钥)[1]:
var source3 = '<p>{{title}}<br />{{口.zht}} / {{口.pyn}} / {{口.dfn}}</p>';
var template = Handlebars.compile(source3);
var html = template(jsonDictSample);
$('#container3')
.append(html);
注1:我知道我可以转换为unicode字符“口”并使用“u53E3”,但我希望将JSON与CJK unicode字符保持为“口”。
Note2 - Mustache工作原理: CJK unicode键与Mustache.js [2]配合使用,因此它不是JSON问题,而是handlebars.js问题。由于我需要高级功能,我仍然在寻找Handlebars解决方案。
[1]:http://jsfiddle.net/YqhKG/ - 车把测试:失败。
[2]:注意 - mustache.js测试:工作正常。
提前致谢。
答案 0 :(得分:2)
下载 Handlebars.js v.1.0.11或以上。
最近回答了github错误报告。修复是替换字母数字正则表达式:
[A-ZA-Z0-9 _ $: - ]
进入unicode complient regex:
[^ \ S“#% - ,. /;! - &GT; @ [ - \ ^`{ - 〜]