我需要將可包含\ r \ n的輸入字符串轉換爲字符串的一部分。例如下面C++將輸入字符串中的 r n轉換爲回車符和換行符
\r\n Content-type: text/plain; charset=iso-8859-1 \r\n Subject: Test Subject \r\n\r\n Test Message
現在給出在發送該字符串在HTTP POST數據我需要轉換\ r \ n至百分編碼。但是當我使用curl_easy_escape函數時,它會將\ r \ n理解爲不同的字符並且編碼不正確。所以爲了避免這樣的錯誤,我需要將上面字符串中的\ r \ n轉換爲回車符和換行符,以便緩衝區通過curl_easy_escape()函數正確轉換。 我嘗試使用sstream對象,sprintf和sscanf與緩衝區(因爲緩衝區是一個std :: string對象),但沒有多大幫助。基本上我想轉換緩衝區如下
內容類型:text/plain;字符集= ISO-8859-1 主題:測試對象
測試消息
所以,當我們通過這個緩衝區curl_easy_escape它正確編碼。 所以在這方面的任何指針都會非常有幫助。
什麼結果,你期待什麼呢? 「curl_easy_escape函數理解爲\ r \ n爲不同的字符」 - 它們**是**不同的字符。 –
@Kiril基本上我想把緩衝區轉換成如下 Content-type:text/plain; charset = iso-8859-1 主題:測試主題 測試消息 因此,curl_easy_escape可以正確編碼。輸出缺少新行和回車符。 – Abhinav
您將任何*轉換爲編碼百分比的方式是將每個*字符轉換並轉換。 '\ r \ n'是*兩個*字符,所以要轉換它們,你完全按照curl所做的:轉換一個字符,然後轉換另一個字符。如果你想要別的東西,那麼請向我們展示*正確*在編碼之後應該看起來像什麼\ r \ n'。 – jalf