将字符串编码为 ISO-8859-1
Encoding a String to ISO-8859-1
有没有一种方法可以将我的字符串 Olá
编码为 JavaScript 中的 Olá
?并对所有重音字符执行此操作。
我的 header 看起来像:
Content-Type: text/html;charset=iso-8859-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,不支持 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á"
如果您还没有合适的 JavaScript 字符串(只是某种缓冲区中的一堆字节,或者如果您拥有的字符串已经采用了错误的编码),您将不得不修复当然是字符串。
有没有一种方法可以将我的字符串 Olá
编码为 JavaScript 中的 Olá
?并对所有重音字符执行此操作。
我的 header 看起来像:
Content-Type: text/html;charset=iso-8859-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,不支持 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á"
如果您还没有合适的 JavaScript 字符串(只是某种缓冲区中的一堆字节,或者如果您拥有的字符串已经采用了错误的编码),您将不得不修复当然是字符串。