問題タブ [uint8array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
194 参照

javascript - javascript で Unicode (コード ポイント) から Blob を作成する

ページ内に表示する各文字のユニコードのみを指定して、 Blobからutf-8でエンコードされた html ページを作成しようとしています。

例: 文字 'a' と 'b' を改行なしのスペースで表示しようとしています。

Blob は、ASCII 範囲 (0-127) 内のコード単位を渡すだけで問題なく正常に動作するようですが、127 より大きいコード単位がある場合はいつでも (例: コード単位 160/改行なしスペース) html では認識されない文字として表示されます。

問題

以下は私が使用したコードです、

いくつかの発見の後、UTF-8 は最大 4 バイトを使用して文字を表し、コード単位 127 の後では、127 を超えるコード単位 (UTF-8) を表すには 2 バイトが必要であることがわかりました。したがって、ブロブのユニコード表現を機能させるには、次のようにブロブを作成する必要がありました。

質問 1 : 127 を超えるコード単位を使用する場合、ビット シフトのような手法 ( https://gist.github.com/lihnux/2aa4a6f5a9170974f6aaのように) を使用する必要がありますか?

質問 2 : しかし、画像や pdf などのバイナリ データを含む Base64 文字列に似た処理を行うと、問題なく出力を取得できます。

質問 2 のコード

画像やpdfなどのバイナリファイルには文字セットがないため、この2番目のアプローチは機能しますか?

どなたか、この 2 つのケースについて説明していただけないでしょうか。

0 投票する
1 に答える
6919 参照

flutter - flutterでメモリイメージ(Uint8listなど)をイメージファイルとして保存する

Uint8list がいくつかあり、それらを jpg ファイルとして保存したいと考えています。私はウェブでこれをたくさん検索しましたが、何も見つかりませんでした!誰でも助けることができますか?

ありがとう、

0 投票する
1 に答える
291 参照

angularjs - Angularjs/Spring を使用した uint8array のアップロード/ダウンロード

フロントエンドに Angularjs を使用する Spring アプリケーションがあります。

フロントエンドで、Openpgpjs を使用してエンコードしたファイルを読み取ります。暗号化プロセスの後、データベースに保存したい Uint8Array オブジェクトを取得します。

バイナリデータをDBに保存するため、リクエストは次のようにサーバーによって受信されます

ファイルは、URL /files/raw/id を介してアプリでアクセスできるようになっています

ファイルをダウンロードする次の機能があります

問題は、ファイルをダウンロードするときに取得する Uint8array が、アップロードしたものと異なることです。responseType をテキストに変更した場合。数はアップロードした uint8array と一致していますが、どうすれば正しくなりますか?

0 投票する
1 に答える
69 参照

arrays - uint8_t バッファを再利用して UART 応答を保存する

私はuint8_t rxBuffer[200] = {0};配列を持っています。

バッファは UART からメッセージを受信します USART1.Receive(rxBuffer, sizeof(rxBuffer));

この rxBuffer で UART 応答を受信し、それらを解析してから、この配列を再利用してさらに応答を解析したいと考えています。このバッファをクリアして再利用するにはどうすればよいですか?

使用してmemset(rxBuffer, 0, sizeof rxBuffer);みましたが、バッファの内容を印刷しようとすると、デバッグコンソールに何も印刷されません

ここで私が間違っていることは何ですか?

私がやろうとしていることにsudoコードを提供します:

memset を使用すると、コンソールに何も出力されません。memset を使用しない場合、この場合は以前の応答も出力されます。