php_xmlhttp 亂碼問題解決方法
更新時間:2009年08月07日 00:48:06 作者:
近來測試php_xmlhttp亂碼問題,無他,僅是不想用那些亂七八糟的框架耳,或者高興了,組織一組也不一定。
resin在新版本中竟開始支持php了,偶感覺比較好玩,也是懶得在自己機(jī)器上再配置一組apache_php_mysql之流,畢竟以java為主做事情的嘛。于是將自己的一個php站點(diǎn)直接放resin里面做開發(fā)了,總體感覺還不錯,基本功能沒發(fā)現(xiàn)問題,但在繼續(xù)優(yōu)化過程中,想到了xmlhttp,便隨手寫了幾個文件試一下,無刷新效果嘛,可是竟然遇到了中文亂碼,于是五一一天就折騰這個了,也在中間從網(wǎng)站看了一些當(dāng)前地球上的一些爭爭吵吵的事情,中美對弈,歐則看盤,一會兒順著這邊說,一會順著那邊扯,也有些意思,只是想,中國的80末以后的這些人會長成什么樣子,靠吃6、70年代人賺下的本活著,還以享樂為榮,關(guān)鍵是還沾沾自喜,這類人不是傳說中的垃圾么?懶得說了,還是看亂碼吧
文件有三個,一個是htm,一個是php,一個是js,js用在htm中,php為服務(wù)端。
a.htm
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript" src="a.js" charset="utf-8"></script>
</head>
<body>
<span id="show"></span>
<form name="aForm">
<input type="text" name="name"><br>
<input type="button" name="btn" value="ok" onclick="aa()">
</form>
<script language="javascript">
<!--
function aa(){
var o = new Ajax();
o.url = "a.php";
o.parseParameters(document.all.aForm);
o.post();
}
-->
</script>
</body>
</html>
a.js
function getXMLHTTPRequest(){
var xmlHttp;
if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp = false;
}
}
}else{
try{
xmlHttp = new XMLHttpRequest();
}catch(e){
xmlHttp = false;
}
}
if(!xmlHttp){
return false;
}else{
return xmlHttp;
}
}
function Ajax(){
this.url;
this.params = "";
this.parseParameters = function(thisform){
for(var i = 0; i < thisform.elements.length; i++){
var e = thisform.elements[i];
this.params += (e.name + "=" + e.value);
if(i != (thisform.elements.length - 1))
this.params += "&";
}
};
AjaxObj = getXMLHTTPRequest();
AjaxObj.onreadystatechange = processRequest;
this.post = function(){
AjaxObj.open("post", this.url, true);
AjaxObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
if(this.params.length > 0)
AjaxObj.send(this.params);
else
AjaxObj.send();
}
}
function processRequest(){
if(AjaxObj.readyState == 4){
if(AjaxObj.status == 200){
if(AjaxObj.responseText != ""){
document.getElementById("show").innerHTML = "";
document.getElementById("show").innerHTML = AjaxObj.responseText;
}
}else{
alert("Exception.");
}
}else{
document.getElementById("show").innerHTML="Loading......";
}
}
a.php
<?php
header("Content-Type:text/html; charset=utf-8");
$name = $_POST['name'];
echo $name;
?>
全用utf-8編寫存儲,但死活就是不行,總說有問題,總出來有亂碼,一天下來,腦袋暈乎乎滴,中午時候胳膊上綁了3kg沙袋,揮羽毛球拍揮了200,肌肉有點(diǎn)脹的感覺了,嗯,說明有鍛煉效果了,過些天等發(fā)了薪水再去買一支練習(xí)拍,我常用的at700大約90g左右,練習(xí)拍在160g左右,應(yīng)該比較有練習(xí)效果吧,不過右胳膊眼見著要比左胳膊粗了,貌似還需要一個大點(diǎn)的杠鈴,把左胳膊也練一下才好
吃完晚飯,一怒之下,就把這三文件傳一php的服務(wù)器上,一試,完全正常,沒有亂碼,我,我不說了,看來是resin的原因,呆會再找找,看一下Quercus有沒最新的版本,是不是能支持的更好一些。
文件有三個,一個是htm,一個是php,一個是js,js用在htm中,php為服務(wù)端。
a.htm
復(fù)制代碼 代碼如下:
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript" src="a.js" charset="utf-8"></script>
</head>
<body>
<span id="show"></span>
<form name="aForm">
<input type="text" name="name"><br>
<input type="button" name="btn" value="ok" onclick="aa()">
</form>
<script language="javascript">
<!--
function aa(){
var o = new Ajax();
o.url = "a.php";
o.parseParameters(document.all.aForm);
o.post();
}
-->
</script>
</body>
</html>
a.js
復(fù)制代碼 代碼如下:
function getXMLHTTPRequest(){
var xmlHttp;
if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp = false;
}
}
}else{
try{
xmlHttp = new XMLHttpRequest();
}catch(e){
xmlHttp = false;
}
}
if(!xmlHttp){
return false;
}else{
return xmlHttp;
}
}
function Ajax(){
this.url;
this.params = "";
this.parseParameters = function(thisform){
for(var i = 0; i < thisform.elements.length; i++){
var e = thisform.elements[i];
this.params += (e.name + "=" + e.value);
if(i != (thisform.elements.length - 1))
this.params += "&";
}
};
AjaxObj = getXMLHTTPRequest();
AjaxObj.onreadystatechange = processRequest;
this.post = function(){
AjaxObj.open("post", this.url, true);
AjaxObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
if(this.params.length > 0)
AjaxObj.send(this.params);
else
AjaxObj.send();
}
}
function processRequest(){
if(AjaxObj.readyState == 4){
if(AjaxObj.status == 200){
if(AjaxObj.responseText != ""){
document.getElementById("show").innerHTML = "";
document.getElementById("show").innerHTML = AjaxObj.responseText;
}
}else{
alert("Exception.");
}
}else{
document.getElementById("show").innerHTML="Loading......";
}
}
a.php
復(fù)制代碼 代碼如下:
<?php
header("Content-Type:text/html; charset=utf-8");
$name = $_POST['name'];
echo $name;
?>
全用utf-8編寫存儲,但死活就是不行,總說有問題,總出來有亂碼,一天下來,腦袋暈乎乎滴,中午時候胳膊上綁了3kg沙袋,揮羽毛球拍揮了200,肌肉有點(diǎn)脹的感覺了,嗯,說明有鍛煉效果了,過些天等發(fā)了薪水再去買一支練習(xí)拍,我常用的at700大約90g左右,練習(xí)拍在160g左右,應(yīng)該比較有練習(xí)效果吧,不過右胳膊眼見著要比左胳膊粗了,貌似還需要一個大點(diǎn)的杠鈴,把左胳膊也練一下才好
吃完晚飯,一怒之下,就把這三文件傳一php的服務(wù)器上,一試,完全正常,沒有亂碼,我,我不說了,看來是resin的原因,呆會再找找,看一下Quercus有沒最新的版本,是不是能支持的更好一些。
您可能感興趣的文章:
- php以post形式發(fā)送xml的方法
- php生成xml時添加CDATA標(biāo)簽的方法
- php輸出xml必須header的解決方法
- php的SimpleXML方法讀寫XML接口文件實(shí)例解析
- php的webservice的wsdl的XML無法顯示問題的解決方法
- PHP輸出XML到頁面的3種方法詳解
- PHP中3種生成XML文件方法的速度效率比較
- PHP中的生成XML文件的4種方法分享
- php中XMLHttpRequest(Ajax)不能設(shè)置自定義的Referer的解決方法
- 操作XML文檔遇到的XMLNS問題及解決方法 (C# 和 PHP)
- PHP使用xmllint命令處理xml與html的方法
相關(guān)文章
PHP實(shí)現(xiàn)微信公眾號企業(yè)號自定義菜單接口示例
這篇文章主要介紹了PHP實(shí)現(xiàn)微信公眾號企業(yè)號自定義菜單接口,結(jié)合實(shí)例形式分析了php自定義微信菜單類及微信接口相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Excel數(shù)據(jù)導(dǎo)入Mysql數(shù)據(jù)庫的實(shí)現(xiàn)代碼
當(dāng)配置好PHP運(yùn)行環(huán)境后,接下來我就開始準(zhǔn)備數(shù)據(jù)源了,記得上次沒有講述Navicat的安裝方法,很簡單,沒有什么特別的,一路Next就完畢了。2008-06-06