ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptで文字列をUTF-8形式に変換する方法
UTF-8 は中国語、日本語、韓国語などの多言語文字をサポートする汎用文字エンコード方式であるため、日常の開発では文字列を UTF-8 形式に変換する必要がよくあります。 JavaScript は、この変換プロセスの実現に役立つ一般的に使用されるスクリプト言語です。
この記事では、JavaScript で文字列を UTF-8 形式に変換する方法を次の観点から紹介します。
UTF-8 は変換です 長い文字エンコードとそのエンコード
たとえば、漢字「君」の Unicode コードは「U 4F60」ですが、上記のルールによれば、UTF-8 エンコードに変換すると「E4 BD A0」となります。 。
JavaScript では、エンコード関数とデコード関数を使用して文字列を UTF-8 形式に簡単に変換できます。
最初はエンコード関数です。encodeURIComponent() 関数を使用して文字列を URI エンコード形式に変換し、各文字の URI エンコードを UTF-8 形式の最終文字列に結合します。サンプルコードは以下のとおりです。 :
function utf8Encode(str) { let encodedStr = encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => { return String.fromCharCode(parseInt(p1, 16)); }); let utf8Str = ""; for (let i = 0; i < encodedStr.length; i++) { let charCode = encodedStr.charCodeAt(i); if (charCode < 128) { utf8Str += String.fromCharCode(charCode); } else if (charCode < 2048) { utf8Str += String.fromCharCode((charCode >> 6) | 192); utf8Str += String.fromCharCode((charCode & 63) | 128); } else { utf8Str += String.fromCharCode((charCode >> 12) | 224); utf8Str += String.fromCharCode(((charCode >> 6) & 63) | 128); utf8Str += String.fromCharCode((charCode & 63) | 128); } } return utf8Str; }
このうち、 encodeURIComponent() 関数は文字列を URI エンコーディングに変換するために使用され、 replace() 関数は各文字の URI エンコーディングを最終的な文字列に結合するために使用されます。 UTF-8 形式の文字列。
デコード関数は、decodeURIComponent() 関数を使用してエンコードされた文字列をデコードします。サンプル コードは次のとおりです:
function utf8Decode(utf8Str) { let decodedStr = ""; let i = 0; while (i < utf8Str.length) { let charCode = utf8Str.charCodeAt(i); if (charCode < 128) { decodedStr += String.fromCharCode(charCode); i++; } else if (charCode >= 192 && charCode < 224) { decodedStr += String.fromCharCode(((charCode & 31) << 6) | (utf8Str.charCodeAt(i + 1) & 63)); i += 2; } else { decodedStr += String.fromCharCode(((charCode & 15) << 12) | ((utf8Str.charCodeAt(i + 1) & 63) << 6) | (utf8Str.charCodeAt(i + 2) & 63)); i += 3; } } return decodeURIComponent(decodedStr); }
const iconv = require("iconv-lite"); let utf8Str = "欢迎使用 iconv-lite 库"; let buf = iconv.encode(utf8Str, "utf8"); // 转成 UTF-8 Buffer let gbkStr = iconv.decode(buf, "gbk"); // 转成 GBK 编码字符串上記のコードでは、 iconv.encode() 関数を使用して文字列を UTF-8 エンコードされたバッファに変換し、iconv.decode() 関数を使用してバッファを対応するエンコード文字列に変換します。なお、iconv-lite ライブラリを使用するには、まず npm 経由でインストールする必要があります。インストール方法は次のとおりです:
npm install iconv-lite概要この記事では、文字列を UTF に変換する方法を紹介します。 JavaScript の -8 形式。 UTF-8 エンコード方式について学習し、エンコード関数とデコード関数によって文字列を UTF-8 に変換する簡単な方法を実現し、アプリケーション全体のトランスコード タスクを完了するための iconv-lite ライブラリの使用を導入しました。実際の開発においては、実際のニーズに応じて適切な手法を選択することで、開発コストの削減や作業効率の向上を図ることができます。
以上がJavaScriptで文字列をUTF-8形式に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。