Remove wxWebResponse::AsString() conversion parameter
It doesn't make much sense to specify the conversion here, it would ideally be taken from the response Content-Type header itself and currently is just assumed to be UTF-8 anyhow. Also implement fallback to Latin-1 to avoid losing the data entirely if it's not in UTF-8.
This commit is contained in:
parent
fd040b702d
commit
1c61fe6baf
@ -152,7 +152,7 @@ public:
|
||||
|
||||
virtual wxString GetSuggestedFileName() const;
|
||||
|
||||
wxString AsString(wxMBConv* conv = NULL) const;
|
||||
wxString AsString() const;
|
||||
|
||||
bool Init();
|
||||
|
||||
|
@ -450,11 +450,9 @@ public:
|
||||
/**
|
||||
Returns all response data as a string.
|
||||
|
||||
@param conv wxMBConv used to convert the response to a string.
|
||||
If @c NULL, the conversion will be determined by
|
||||
response headers. The default is UTF-8.
|
||||
This is mostly useful for debugging or diagnostics.
|
||||
*/
|
||||
wxString AsString(wxMBConv* conv = NULL) const;
|
||||
wxString AsString() const;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -345,16 +345,13 @@ wxString wxWebResponse::GetSuggestedFileName() const
|
||||
return suggestedFilename;
|
||||
}
|
||||
|
||||
wxString wxWebResponse::AsString(wxMBConv * conv) const
|
||||
wxString wxWebResponse::AsString() const
|
||||
{
|
||||
// TODO: try to determine encoding type from content-type header
|
||||
if ( !conv )
|
||||
conv = &wxConvUTF8;
|
||||
|
||||
if ( m_request.GetStorage() == wxWebRequest::Storage_Memory )
|
||||
{
|
||||
// TODO: try to determine encoding type from content-type header
|
||||
size_t outLen = 0;
|
||||
return conv->cMB2WC((const char*)m_readBuffer.GetData(), m_readBuffer.GetDataLen(), &outLen);
|
||||
return wxConvWhateverWorks.cMB2WC((const char*)m_readBuffer.GetData(), m_readBuffer.GetDataLen(), &outLen);
|
||||
}
|
||||
else
|
||||
return wxString();
|
||||
|
Loading…
Reference in New Issue
Block a user