中文传参乱码解决:
1 前端h5 获取中文参数做转码js:(参数:页面获取的中文字符串,返回:转码传向后台的字符串)
function stringToUncodeBytes(str)
{
var ch, st, re = [];
var result="";
for (var i = 0; i < str.length; i++ )
{
ch = str.charCodeAt(i); // get char
if (ch<255)
{
result=result+"00"+byteToHex(ch& 0xFF);
}
else
{
st = []; // set up "stack"
do {
st.push(byteToHex(ch&0xFF)); // push byte to stack
ch = ch >> 8; // shift value down by 1 byte
}
while ( ch );
result=result+st.reverse();
}
}
result=result.replace(/,/g,"");
return result;
}
function byteToHex(byte1)
{
var result;
result=byte1.toString(16);
if (result.length==1)
{
result="0"+result;
}
return result;
}2 后台接收参数,做逆转码,代码片段:(入参:上述H5转换后的参数字符串,出参:正常中文字符串)
//解析参数-------------
public String getName(String agent_name)
{
StringBuffer sb = new StringBuffer();
int strLen = agent_name.length() / 4;
char[] c = agent_name.toCharArray();
for (int i = 0; i < strLen; i++) {
String str = new String(c, i * 4, 4);
sb.append((char) Integer.parseInt(str, 16));
}
String newname = sb.toString();
return newname;
}
本文详细介绍了在H5前端获取中文参数时遇到乱码问题的解决方法,包括前端JavaScript进行转码处理以及后端如何正确接收并解码这些转码后的参数,确保中文数据在前后端交互过程中不失真。
2412

被折叠的 条评论
为什么被折叠?



