将字符串编码为ISO-8859-1

时间:2018-10-24 20:48:52

标签: javascript encode iso-8859-1

a是否可以通过JavaScript将我的字符串Olá编码为Olá?并对所有重音字符执行此操作。

我的标题如下:

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

1 个答案:

答案 0 :(得分:1)

如果您已经有了正确的字符串,则可以这样做:

ECMAScript≥6,具有表情符号支持

(请参阅: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,不支持表情符号:

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字符串(只是某种缓冲中的一堆字节,或者如果您的字符串已经使用了错误的编码),那么您当然必须首先修复该字符串