Как получить длину японских символов в Javascript?

У меня есть страница ASP Classic с кодировкой SHIFT _JIS. Метатег под заголовком страницы выглядит так:

<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 распознает его только как один символ, вероятно, из-за кодировки Unicode, которую Javascript использует по умолчанию. Некоторые символы, такие как ケ, имеют 2 или 3 символа при нажатии SHIFT _JIS.

Если я буду зависеть только от длины, предоставленной Javascript, длинные японские символы пройдут проверку страницы, и она попытается сохранить в базе данных, что затем завершится ошибкой из-за максимальной длины столбца БД 200.

Я использую браузер Internet Explorer. Есть ли способ получить длину SHIFT _JIS японского символа с помощью Javascript? Можно ли преобразовать Unicode в SHIFT _JIS с помощью Javascript? Как?

Спасибо за помощь!

5
задан dda 13 July 2012 в 09:10
поделиться