function ord( string ) { // Return ASCII value of character
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
return string.charCodeAt(0);
}
Да потому что Кевин - дебил!, на самом деле charCodeAt(0) возвращает числовое представление по уникод таблице, а с ASCII совпадают только небольшие диапазоны. Выход использовать charCodeAt для перевода символов в Unicode, а перевод в нормальный вид написать на php самостоятельно.
Для получения ASCII-кодов русских символов в строке с помощью JavaScript:
Код :
a=str.charCodeAt(0);
if (a>0xFF) a-=0x350;
charCodeAt возвращает код символа в Unicode. Он совпадает с ASCII-кодом для символов 0-128 (Английские буквы, цифры и знаки препинания). Код русских букв смещается на необходимую величину.
А почему
ord('a') русской = 224 в php, а
а.charCodeAt(0) русской = 1072 в JS ??
и как привести эти операции к единым кодам?
Да потому что Кевин - дебил!, на самом деле charCodeAt(0) возвращает числовое представление по уникод таблице, а с ASCII совпадают только небольшие диапазоны. Выход использовать charCodeAt для перевода символов в Unicode, а перевод в нормальный вид написать на php самостоятельно.
Для вывода значения таблицы уникод используйте &#число, например: а.
Используйте цикл для того чтобы составить массив элементов для php.
Для получения ASCII-кодов русских символов в строке с помощью JavaScript:
Код :
a=str.charCodeAt(0);
if (a>0xFF) a-=0x350;
charCodeAt возвращает код символа в Unicode. Он совпадает с ASCII-кодом для символов 0-128 (Английские буквы, цифры и знаки препинания). Код русских букв смещается на необходимую величину.
получается так:
function ord( str )
{
var ch = str.charCodeAt(0);
if (ch>0xFF) ch-=0x350;
return ch.charCodeAt(0);
}