RESTful Webサービス経由でファイルをダウンロードし、そのファイルをコンピュータに保存しようとしています。UTF8をデフォルトのエンコーディングに変換できません
私はコードをテストするためにPDFファイルを使用しています。データがUTF-8でエンコードされていることがわかったので、エンコードを元に戻してみました。なぜなら、ローカルでpdfファイルを読み込んで、それを再び書き直して見つけたからです。文字列を比較すると、次の(第2ライン)を示し
IConsumerRequest getDocumentRequest = class.consumerSession
.Request()
.ForMethod("GET")
.ForUri(new Uri(class.apiEndpoint + "/1/documents/" + id))
.SignWithToken(class.accessToken);
string test = System.IO.File.ReadAllText("C:\\test.pdf", Encoding.Default);
byte[] bytes = Encoding.UTF8.GetBytes(getDocumentRequest.ToString());
string data = Encoding.Default.GetString(bytes);
MessageBox.Show(test.Substring(0, 120) + "\n\n" + data.Substring(0, 120));
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
System.IO.File.WriteAllBytes(saveFileDialog.FileName, bytes);
}
:
は、ここに私のコードです Local String vs String from Webservice
は、私はすでに何の違いなしで文字列を変換する方法をいくつか試してみました。
おかげしかし、これはまったく同じ効果があります使用して。 –
@TimoRzipa - [WriteAllBytes](https://msdn.microsoft.com/en-us/library/ms143376(v = vs.110).aspx)オーバーロードを使用して、エンコードタイプを最後のパラメータ? – keyboardP
また、エンコードタイプをとるオーバーロードはありません。バイトは決して符号化されないので、問題は文字列のどこかにある必要があります。私は多分それは私のせいではないが、ウェブサービスの問題だと思う。 –