NodeJS「シュレッド」を使用してPOSTリクエストでUTF8エンコードされたテキストファイルを送信する際に問題が発生しました
私が投稿しようとしているテキストコンテンツは、クライアント側では問題なく表示されます。client.postを呼び出す直前にconsole.logを画面に表示するため、サーバーが取得するのはテキストファイルのコンテンツですが、最後の2文字は常に行方不明/みじん切り。これは、ANSIテキストファイルの問題ではありません。テキストファイルをUTF8からANSIに変換すると、サーバーに到達したときに完了します。
var Shred = require('shred');
var client = new Shred();
var textToPost = fs.readFileSync("myfile.txt", 'utf8');
console.log (textToPost);
client.post({
url: "http://www.example.com/readTextFile.php",
headers: { 'Content-Type': 'application/x-subrip'},
content: textToPost,
on: {
200: function (response) {
console.log("posted ok");
console.log(response.content.body);
},
500: function (response) {
asyncCb(new Error('bad response\n' + response.content.body));
}
}
サーバーで(readTextFile.phpによって)受信されるのは、最後の2文字が削除されたmyfile.txtの内容です。理由がわかりません。これはダウンストリームに大きな影響を与えるため、パッチのある回避策は役に立たない可能性があります。
また、textToPostのコンテンツがコンソールに記録されると、「?」が表示されることに気付きました。内容の前。これは、ファイルがANSIエンコードファイルの場合は表示されません。
助けてください..ありがとう