文字列で表される16進コードをバイトに変換し、Javascriptでその逆に変換するにはどうすればよいですか?
var conv = require('binstring');
var hexstring ='80';
var bytestring = conv(hexstring, {in:'hex', out:'utf8'});
var backtohexstring = conv(bytestring, {in:'utf8', out:'hex'}); // != '80'???
backtohexstringは、着信データ文字列を正しい16進数にデコードします(コンソールに出力されたときに着信文字列のように見えたため、utf8とbyteも使用しました)。
また、これら2つのネイティブJavaScript関数を見つけました。デコーダーは着信ストリームで機能しますが、それでも16進数をエンコードできません...
function encode_utf8( s ) {
return unescape( encodeURIComponent( s ) );
}
function decode_utf8( s ) {
return decodeURIComponent( escape( s ) );
}
これは、ノード標準ライブラリによって提供されるBufferクラスを利用したnode.js固有のアプローチです。
https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
バイト(0-255)値を取得するには:
Buffer.from('80', 'hex')[0];
// outputs 128
そして、元に戻すには:
Buffer.from([128]).toString('hex');
// outputs '80'
utf8に変換するには:
Buffer.from('80', 'hex').toString('utf8');
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加