springboot 接收到前臺傳入json數據時解析中文亂碼

最近在做項目的時候出現一個特別難受的事情,後臺(springboot項目)接收到前臺傳入的參數時,中文亂碼。

初步懷疑是編碼格式問題,將編碼格式改爲與後臺一致,依舊不好使

同時考慮在springboot的默認接收數據格式不是utf-8的,設置了接收數據編碼格式限制UTF-8還是不好使。

最後考慮post方式調用http服務的時候由於數據格式爲json其中包含了特殊字符,因此將json數據做了urlEncode然後之後發送後臺,完美解決問題。

 

string UrlEncode(string& szToEncode)
{
	string src = szToEncode;
	char hex[] = "0123456789ABCDEF";
	string dst;
 
 
	for (size_t i = 0; i < src.size(); ++i)
	{
		unsigned char cc = src[i];
		if ( cc >= 'A' && cc <= 'Z' 
                 || cc >='a' && cc <= 'z'
                 || cc >='0' && cc <= '9'
                 || cc == '.'
                 || cc == '_'
                 || cc == '-'
                 || cc == '*')
		{
			if (cc == ' ')
			{
				dst += "+";
			}
			else
				dst += cc;
		}
		else
		{
			unsigned char c = static_cast<unsigned char>(src[i]);
			dst += '%';
			dst += hex[c / 16];
			dst += hex[c % 16];
		}
	}
	return dst;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章