我有一个带有 SHIFT_JIS 字符集的 ASP 经典页面。页面head部分下的meta标签是这样的:
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
我的页面有一个文本框 (txtName),它应该只允许 200 个字符。我有一个验证字符长度的 Javascript 函数,该函数在我的提交按钮的 onclick() 事件中调用。
if(document.frmPage.txtName.value.length > 200) {
alert("You have exceeded the maximum length of 200.");
return false;
}
问题是,Javascript 没有获得以 SHIFT_JIS 编码的正确长度的日文字符。例如,字符测的 SHIFT_JIS 长度为 8 个字符,但 Javascript 仅将其识别为一个字符,可能是因为 Javascript 默认使用的 Unicode 编码。在 SHIFT_JIS 中,某些字符(如 ケ)有 2 或 3 个字符。
如果我只依赖 Javascript 提供的长度,长日文字符将通过页面验证并尝试保存在数据库中,然后由于 DB 列的最大长度为 200 而失败。
我使用的浏览器是 Internet Explorer。有没有办法使用 Javascript 获取日文字符的 SHIFT_JIS 长度?是否可以使用 Javascript 从 Unicode 转换为 SHIFT_JIS?如何?
谢谢您的帮助!