PHP $_POST提交中文乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP $_POST提交中文乱码相关的知识,希望对你有一定的参考价值。

html:
<form action="__APP__/ShoppingCart/add" method="POST">
<br/><b>$pro_name</b><br/><br/>
价格:¥$pro_price<br/><br/>
已售出:$pro_sale件
数量<input type="text" size="2" name="pro_num" value="1"/><input type="submit" value="加入购物车" />
<input type="hidden" name="pro_id" value="$pro_id" />
<input type="hidden" name="pro_name" value="$pro_name" />
<input type="hidden" name="pro_price" value="$pro_price" />
</form>
action:
public function add()
$user = session("user_name");
if(session("user_name"))
header("Content-Type:text/html;charset=utf8");
request.setCharacterEncoding("UTF-8");
$common = D("Common");
$data["user_id"] = $user[0]["user_id"];
$data["user_name"] = $user[0]["user_name"];
$data["pro_id"] = $_POST["pro_id"];
$data["pro_name"] = $_POST["pro_name"];
$data["pro_price"] = $_POST["pro_price"];
$data["pro_num"] = $_POST["pro_num"];
$data["pro_total"] = $_POST["pro_num"]*$_POST["pro_price"];
dump($data);
echo $data["pro_name"];




为什么接收的$_POST["pro_name"]是乱码?页面我查看过源代码 那个隐藏域没有变乱码

参考技术A header("Content-Type:text/html;charset=utf8");
修改为
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
看看追问

可以了 谢了

本回答被提问者采纳
参考技术B 确定你的html页面的编码也是utf-8追问

对 全是UTF-8

追答

设定你的thinkphp编码以及使用thinkphp的$this->_post("pro_price");还获取你的值试试

eclipse中JSP表单提交运行后出现乱码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
</head>
<body>
<form action="RegisterHandle.jsp">
用户名:<input type="text" name="userName" /><br/>
密码:<input type="password" name="password" /><br/>
性别:<input type="radio" name="gender" value="male" />男
<input type="radio" name="gender" value="female" />女<br/>
住址:
<select name="address">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="哈尔滨">哈尔滨</option>
<option value="烟台">烟台</option>
</select>
<br/>
爱好:
<input type="checkbox" name="favor" value="游戏" />游戏
<input type="checkbox" name="favor" value="英语" />英语
<input type="checkbox" name="favor" value="计算机" />计算机
<input type="checkbox" name="favor" value="跑步" />跑步
<br/>
<textarea name="memo" rows="6" cols="50">请留言...</textarea>
<hr/>
<input type="submit" value="注册" />
<input type="reset" value="重置" />
</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%
String userName=request.getParameter("userName");
String password=request.getParameter("password");
String gender=request.getParameter("gender");
String address=request.getParameter("address");
String[] favor=request.getParameterValues("favor");
String memo=request.getParameter("memo");
out.println("用户名:" + userName + "<br/>");
out.println("密码:" + password + "<br/>");
out.println("性别:" + gender + "<br/>");

out.println("爱好:");
for(String f : favor)
out.println(f+" ");

out.println("<br/>");
out.println("留言:" + memo+ "<br/>");
%>

  eclipse中JSP表单提交运行后出现乱码,设置编码格式就可以了。

  工具/原料

  电脑。

  eclipse

  方法/步骤

    打开eclipse,找到windows-->preference。

    进入preference后点击Web。

    在Web下选择jsp files。

    在右边找到encoding修改为自己希望的编码。

    新建一个jsp页面,页面编码已经是我们修改后的了。

参考技术A

request.setCharacterEncoding("UTF-8");
只对post提交有效,而form默认是get提交的

本回答被提问者采纳

以上是关于PHP $_POST提交中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

为啥response.setheader方法含中文 乱码

iOS 开发 post 提交数据 中文乱码 一串问号,怎么解决

eclipse中JSP表单提交运行后出现乱码

SpringMVC以POST提交表单中文乱码解决方案。

form表单提交乱码问题?

java form表单递交出现乱码