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:
		@@ -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();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user