Вход

Просмотр полной версии : Конверт HEX в ANSI


фонарик
09.10.2015, 04:07
Подскажите пожалуйста решение проблемы. Есть строка в 16ричном видеvar string = "5b cf f0 e8 e2 e5 f2 5d"
В ANSI кодировке
5b = [
cf = П
f0 = р
e8 = и
e2 = в
e5 = е
f2 = т
5d = ]

т.е это значение [Привет]. Можно ли как-то средствами Javascript конвертировать HEX поток в ANSI символы?

Опан
09.10.2015, 21:15
var string = "5b cf f0 e8 e2 e5 f2 5d";
var mas_in=string.split(" ");
var mas_out=[];
for(i=0;i<mas_in.length;i++){
mas_out[i]=String.fromCharCode(parseInt(mas_in[i], 16));
}
var out=mas_out.join("");
alert(out);
Правда, у меня браузер почему-то выводит среднеевропейской кодировкой. Если у Вас тоже, будем думать, как бороться.

фонарик
09.10.2015, 21:46
Беда именно в HEX кодировке символов кирилицы :( Латинский алфавит он из хекса переводит нормально, а кирилицу нет :(

var string = "5b cf f0 e8 e2 e5 f2 5d";
var mas_in=string.split(" ");
var mas_out=[];
for(i=0;i<mas_in.length;i++){
mas_out[i]=String.fromCharCode(parseInt(mas_in[i], 16));
}
var out=mas_out.join("");
alert(out);

рони
09.10.2015, 22:51
фонарик,
функция тут http://javascript.ru/php/bin2hex#comment-16593
hex2bin = function(hex) { // ASCII hex-> UTF-8 string
var bin = '';
for (var i=0; i<hex.length; i=i+2) {
var c = parseInt(''+hex[i]+hex[i+1], 16);
if (c>0x7F) c += 0x350; // ASCII -> UTF-8
bin += String.fromCharCode(c);
}
return bin;
}
var string = "5b cf f0 e8 e2 e5 f2 5d";
alert( hex2bin(string.replace(/\s/g,'')))

фонарик
10.10.2015, 01:04
рони,
поклон вам до земли :) Я 2 дня по гуглу лазил, так и не нашел.

Опан
11.10.2015, 09:20
Я перед этим пробовал просто перекодировать документ в UTF-8 на notepad++, но ничего не менялось.