UTF-8 ArrayBuffer と文字列の変換
2023-08-29 02:27:18
質問
私は
ArrayBuffer
には UTF-8 でエンコードされた文字列が含まれていますが、 このような文字列を変換する標準的な方法は見当たりません。
ArrayBuffer
を JS
String
に変換します (これは UTF-16 でエンコードされていると理解しています)。
私はこのコードを多くの場所で見てきましたが、1 バイトより長い UTF-8 コードポイントに対してどのように動作するのかがわかりません。
return String.fromCharCode.apply(null, new Uint8Array(data));
同じように、私は
String
から UTF-8 でエンコードされた
ArrayBuffer
.
どのように解決するのですか?
function stringToUint(string) {
var string = btoa(unescape(encodeURIComponent(string))),
charList = string.split(''),
uintArray = [];
for (var i = 0; i < charList.length; i++) {
uintArray.push(charList[i].charCodeAt(0));
}
return new Uint8Array(uintArray);
}
function uintToString(uintArray) {
var encodedString = String.fromCharCode.apply(null, uintArray),
decodedString = decodeURIComponent(escape(atob(encodedString)));
return decodedString;
}
私は、インターネットからの助けを借りて、これらの小さな関数を作りました。以下は 作業中のJSFiddle .
EDIT :
Uint8Arrayのソースが外部であるために
atob
を削除すればいいだけです。
作業用フィドル
):
function uintToString(uintArray) {
var encodedString = String.fromCharCode.apply(null, uintArray),
decodedString = decodeURIComponent(escape(encodedString));
return decodedString;
}
警告: ウェブ標準からエスケープとアンエスケープが削除されました。 こちらをご覧ください。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み] イテレータでmap()を使用する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列とArrayBufferの間の変換
-
[解決済み】JavascriptでUint8Arrayを文字列に変換する。
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] uint8配列をbase64エンコードされた文字列に変換する方法は?