与此相同的问题,但使用 UTF-8 而不是 ASCII
在 JavaScript 中,如何获得 UTF-8 值的字符串表示形式?
例如如何将“c385”变成“Å”?
或者如何将“E28093”变成“—”(m dash)?
或者如何将“E282AC”变成“€”(欧元符号)?
我的问题不是Hex2Asc的副本。您可以自己看到: hex2a("E282AC") 会将字符串转换为“⬔,而不是将其转换为“€”(欧元符号)!
我认为这会做你想要的:
function convertHexToString(input) {
// split input into groups of two
var hex = input.match(/[\s\S]{2}/g) || [];
var output = '';
// build a hex-encoded representation of your string
for (var i = 0, j = hex.length; i < j; i++) {
output += '%' + ('0' + hex[i]).slice(-2);
}
// decode it using this trick
output = decodeURIComponent(output);
return output;
}
console.log("'" + convertHexToString('c385') + "'"); // => 'Å'
console.log("'" + convertHexToString('E28093') + "'"); // => '–'
console.log("'" + convertHexToString('E282AC') + "'"); // => '€'
学分:
var hex = "c5";
String.fromCharCode(parseInt(hex, 16));
你必须使用c5
,而不是c3 85
参考:http ://rishida.net/tools/conversion/
了解有关代码点和代码单元的更多信息