1

thisと同じ質問ですが、ASCII ではなく UTF-8 を使用します

JavaScript で、UTF-8 値の文字列表現を取得するにはどうすればよいですか?

たとえば、"c385" を "Å" に変換するにはどうすればよいですか?

または "E28093" を "—" (m ダッシュ) に変える方法は?

または「E282AC」を「€」(ユーロ記号)に変換する方法は?

私の質問はHex2Ascの複製ではありません。自分の目で確かめてください: hex2a("E282AC") は文字列を "€" (ユーロ記号) に変換する代わりに "â¬" に変換します!!

4

2 に答える 2

3

私はこれがあなたが望むことをすると思います:

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') + "'"); // => '€'

デモ

クレジット:

于 2013-06-12T03:58:52.107 に答える
1
var hex = "c5";
String.fromCharCode(parseInt(hex, 16));

refc5ではなくを使用する必要があります: http://rishida.net/tools/conversion/c3 85

コード ポイントとコード単位の詳細

  1. http://en.wikipedia.org/wiki/Code_point
  2. http://www.coderanch.com/t/416952/java/java/Unicode-code-unit-Unicode-code
于 2013-06-12T04:22:15.023 に答える