首页 > 代码库 > Html和JS文件未使用UTF-8编码导致部分JS函数执行不正确

Html和JS文件未使用UTF-8编码导致部分JS函数执行不正确

昨天写Windows应用程序用的前端HTML页面时,发现了一个奇怪的问题,一段简单的JS代码,竟然执行错误。

function replaceSymbol(){
	var val_exp = $('#calc_expression').val();
	alert(val_exp);
	val_exp=val_exp.replace(/(/g,'(').replace(/)/g,')').replace(/×/g,'*').replace(/÷/g,'/');
	alert(val_exp);
	$('#calc_expression').val(val_exp);
}

代码比较简单,也就是替换表达式中的特殊字符,如: ( ) × ÷ 转换为英文状态的符号,如: ( ) * /

但即使包含上面的特殊字符,两次 alert 得到的结果均未变化。但同一个js文件中别的函数执行正常。

试着把这段代码提出来到一个单独的HTML页面,也执行正常。

很明显不是这段代码的问题。


后来想起来js文件是通过新建的txt文件修改扩展名而来的,默认的是ANSI编码。试着在 notepad++ 点击菜单栏的 格式 - 转为 UTF-8 编码格式,保存。

再次执行,OK了。


就是这个不起眼的编码格式的问题,被折腾了N久。

后来跟一个由VC++转做JS的朋友聊起这事儿,告知我:html、js和数据库等文件,一定要设置成 UTF-8 格式的,不然以后有你头疼的时候!


各种语言和工具,桌面开发和移动开发,真是各有各的坑,栽过了才知道哦。

记在这里,以示提醒!