JavaScriptのバイトから文字列へ

WBOY
WBOYオリジナル
2023-05-21 11:33:093135ブラウズ

JavaScript は広く使用されているプログラミング言語で、特にフロントエンド開発でよく使用され、さまざまなインタラクティブな効果やアニメーションを実現できます。 JavaScript 開発では、データの処理と送信を容易にするために、バイナリ バイトを文字列に変換する必要がある場合があります。この記事では、JavaScript でバイトを文字列に変換する方法を説明します。

1. バイトと文字列の概念

コンピュータでは、バイト (byte) はコンピュータ内の最小の記憶単位であり、1 バイトは通常 8 つのバイナリ ビット、つまり $2^ で表されます。 8 = 256$ の異なる組み合わせ。バイトは、文字、数字、または画像、音声、ビデオなどのデータを表すことができます。

文字列は、文字、数字、記号、スペースなどの一連の文字で構成されるテキストです。 JavaScript では、文字列を一重引用符または二重引用符で囲むことによって表現できます。

2. バイトと文字列の変換方法

JavaScript では、バイトを文字列に変換する方法として、TextDecoder オブジェクトを使用する方法と手動でデコードする方法の 2 つがあります。以下に分けて紹介します。

1. TextDecoder オブジェクトを使用する

TextDecoder オブジェクトは JavaScript の組み込みオブジェクトであり、バイト ストリームを文字列にデコードするために使用されます。 TextDecoder オブジェクトを使用する前に、バイト ストリームを Uint8Array オブジェクトに格納する必要があります。具体的なコードは次のとおりです:

//创建一个包含字节流的Uint8Array对象
const bytes = new Uint8Array([65, 66, 67, 68]);

//创建一个TextDecoder对象
const decoder = new TextDecoder();

//解码字节流
const str = decoder.decode(bytes);

//输出结果
console.log(str); //"ABCD"

上記のコードでは、最初に 4 バイトを含む Uint8Array オブジェクトを作成します。含まれるバイトはそれぞれ 65、66、67、68 で、対応する ASCII コードはそれぞれ次のとおりです。 「A」、「B」、「C」、「D」。次に、TextDecoder オブジェクトが作成され、最後に decode メソッドが呼び出されてバイト ストリームをデコードし、結果が変数 str に格納されます。出力結果は「ABCD」、つまりバイトストリームが文字列に変換されます。

2. 手動デコード

JavaScript では、バイト ストリームを手動でデコードして文字列に変換することもできます。具体的なコードは次のとおりです。

//创建一个包含字节流的Uint8Array对象
const bytes = new Uint8Array([65, 66, 67, 68]);

//手动解码字节流
let str = "";
for(let i = 0; i < bytes.length; i++){
  str += String.fromCharCode(bytes[i]);
}

//输出结果
console.log(str); //"ABCD"

手動デコード方法では、まず 4 バイトを含む Uint8Array オブジェクトを作成します。このオブジェクトには、ASCII コード「A」、「B」、「C」、および「」も含まれています。 D」の文字。次に、バイト ストリーム内の各バイトをループし、fromCharCode メソッドを使用して対応する文字に変換し、すべての文字を文字列に連結します。最終的な出力結果は「ABCD」で、これもバイト ストリームを文字列に変換します。

3. さまざまなエンコード方式を使用する

実際のシナリオでは、さまざまなエンコード方式のバイト ストリームを文字列に変換することが必要になることがよくあります。たとえば、HTTP 通信では、送信データは UTF-8 でエンコードされたバイト ストリームまたは GB2312 でエンコードされたバイト ストリームになる場合があります。エンコード方式が異なると変換結果に影響を与える場合があるため、バイト変換を実行する場合は正しいエンコード方式を指定する必要があります。

TextDecoder オブジェクトでは、構成オプションを変更することでエンコード方式を指定できます。一般的なエンコード方式は次のとおりです。

  • UTF-8: 一般的に使用される Unicode エンコード方式で、すべての文字セットと互換性があります。 TextDecoderでは、UTF-8のエンコード方式を「utf-8」または「UTF-8」で指定します。
  • GB2312: 中国語のエンコード方式。簡体字中国語に適しています。 TextDecoder では、「gb2312」または「GBK」を使用して GB2312 エンコード方式を指定します。
  • ISO-8859-1: 西ヨーロッパ文字セットのエンコーディング。 TextDecoder では、「iso-8859-1」または「ISO-8859-1」を使用して ISO-8859-1 エンコード方式を指定します。

たとえば、UTF-8 エンコーディングのバイト ストリームを文字列に変換するコードは次のとおりです。

//创建一个包含UTF-8编码方式的字节流的Uint8Array对象
const bytes = new Uint8Array([228, 184, 150, 229, 155, 189, 233, 163, 142, 231, 154, 132]);

//创建一个TextDecoder对象,指定UTF-8编码方式
const decoder = new TextDecoder("utf-8");

//解码字节流
const str = decoder.decode(bytes);

//输出结果
console.log(str); //"你好世界"

上記のコードでは、最初に UTF-8 を含むファイルを作成します。 8 バイトストリームをエンコードする Uint8Array オブジェクト。次に、TextDecoder オブジェクトが作成され、「utf-8」パラメーターを渡すことでエンコード方式が指定されます。最後に、decode メソッドが呼び出されてバイト ストリームをデコードし、結果が変数 str に格納され、出力結果は「Hello World」になります。

4. 結論

JavaScript 開発ではバイトと文字列の変換が頻繁に行われますが、この記事では、TextDecoder オブジェクトの使用と手動デコードを含む 2 つの変換方法を紹介します。さらに、この記事では、一般的なエンコード方法を紹介し、変換のためにさまざまなエンコード方法を指定する方法も示します。この記事を読むことで、読者はバイトと文字列の概念をより深く理解し、バイトを文字列に変換する方法を習得し、JavaScript 開発に対するより多くの技術サポートを提供することができます。

以上がJavaScriptのバイトから文字列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:c HTMLからPDFへ次の記事:c HTMLからPDFへ