0

次のように始まる .glb ファイルにいくつかのデータがあります。

glTF ¤Ö @ JSON

次のコードを使用してファイルを読み取ります。

fs.readFile(file,  (err, data) => {

    if (err) console.log(err);

    var message = {
        "Message": "glb_string",
        "Item": data
    }
    ws.send(JSON.stringify(message));
});

そして、Websocket 接続を使用してクライアント Websocket サーバーに送信します。

ただし、fs.readFile によって返されるノード バッファは次のようになります。

Buffer@0x0000020A2BF455D0 67 6c 54 46 02 00 00 00 a4 d6 01 00 40 08 00 00 4a 53 4f 4e 7b ... 

これらの値は正しくありません。utf-8 形式で単純な文字を正しく取得します。

g(67) l(6c) T(54) F(46)

しかし、¤ や Ö などの特殊文字に達すると、バッファーは 00 を返します。バッファーは次のようになります。

Buffer@0x000001DD07B0E590 67 6C 54 46 02 20 20 20 C2 A4 C3 ... 

または小数形式で:

103 108 84 70 2 32 32 32 164 214 1 32 64 8 32 32 74 83 79 78

2 is "stx start of text ctrl-b"
1 is "soh start of heading ctrl-a"
164 is ¤ 
214 is Ö

返される生のバッファがこれらの特殊文字に正しい値を使用しない理由がわかりません。その結果、.glb ファイルは使用できません。

助けてくれてありがとう。

4

0 に答える 0