Кодирование строки по ISO-8859-1 - PullRequest
0 голосов
/ 24 октября 2018

Есть ли способ, которым можно кодировать мою строку Olá в Olá в JavaScript?И сделайте это со всеми акцентированными символами.

Мой заголовок выглядит так:

Content-Type: text/html;charset=iso-8859-1

1 Ответ

0 голосов
/ 25 октября 2018

Если у вас уже есть правильная строка, вы можете сделать это следующим образом:

ECMAScript ≥ 6, с поддержкой Emoji

(см .: https://medium.com/@giltayar/iterating-over-emoji-characters-the-es6-way-f06e4589516)

function decimalEscape(s) {
    let buffer = [];
    for(let ch of s) {
        if(ch.codePointAt(0) <= 127) {
            buffer.push(ch);
        } else {
            buffer.push('&#' + ch.codePointAt(0) + ';');
        }
    }
    return buffer.join('');
}

ECMAScript ≤ 5, без поддержки Emoji:

function decimalEscape(s) {
    var buffer = [];
    for(var i = 0, f = s.length; i < f; ++i) {
        if(s.charCodeAt(i) <= 127) {
            buffer.push(s.charAt(i));
        } else {
            buffer.push('&#' + s.charCodeAt(i) + ';');
        }
    }
    return buffer.join('');
}

Использование:

decimalEscape("Olá"); // -> returns "Ol&#225;"

Если у вас нет нужногоПока нет строки JavaScript (просто набор байтов в каком-то буфере или если у вас есть строка, которая уже находится в неправильной кодировке), вам, конечно, придется сначала исправить строку.

...