php_xmlhttp 亂碼問題解決方法
更新時(shí)間:2009年08月07日 00:48:06 作者:
近來測(cè)試php_xmlhttp亂碼問題,無他,僅是不想用那些亂七八糟的框架耳,或者高興了,組織一組也不一定。
resin在新版本中竟開始支持php了,偶感覺比較好玩,也是懶得在自己機(jī)器上再配置一組apache_php_mysql之流,畢竟以java為主做事情的嘛。于是將自己的一個(gè)php站點(diǎn)直接放resin里面做開發(fā)了,總體感覺還不錯(cuò),基本功能沒發(fā)現(xiàn)問題,但在繼續(xù)優(yōu)化過程中,想到了xmlhttp,便隨手寫了幾個(gè)文件試一下,無刷新效果嘛,可是竟然遇到了中文亂碼,于是五一一天就折騰這個(gè)了,也在中間從網(wǎng)站看了一些當(dāng)前地球上的一些爭(zhēng)爭(zhēng)吵吵的事情,中美對(duì)弈,歐則看盤,一會(huì)兒順著這邊說,一會(huì)順著那邊扯,也有些意思,只是想,中國(guó)的80末以后的這些人會(huì)長(zhǎng)成什么樣子,靠吃6、70年代人賺下的本活著,還以享樂為榮,關(guān)鍵是還沾沾自喜,這類人不是傳說中的垃圾么?懶得說了,還是看亂碼吧
文件有三個(gè),一個(gè)是htm,一個(gè)是php,一個(gè)是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編寫存儲(chǔ),但死活就是不行,總說有問題,總出來有亂碼,一天下來,腦袋暈乎乎滴,中午時(shí)候胳膊上綁了3kg沙袋,揮羽毛球拍揮了200,肌肉有點(diǎn)脹的感覺了,嗯,說明有鍛煉效果了,過些天等發(fā)了薪水再去買一支練習(xí)拍,我常用的at700大約90g左右,練習(xí)拍在160g左右,應(yīng)該比較有練習(xí)效果吧,不過右胳膊眼見著要比左胳膊粗了,貌似還需要一個(gè)大點(diǎn)的杠鈴,把左胳膊也練一下才好
吃完晚飯,一怒之下,就把這三文件傳一php的服務(wù)器上,一試,完全正常,沒有亂碼,我,我不說了,看來是resin的原因,呆會(huì)再找找,看一下Quercus有沒最新的版本,是不是能支持的更好一些。
文件有三個(gè),一個(gè)是htm,一個(gè)是php,一個(gè)是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編寫存儲(chǔ),但死活就是不行,總說有問題,總出來有亂碼,一天下來,腦袋暈乎乎滴,中午時(shí)候胳膊上綁了3kg沙袋,揮羽毛球拍揮了200,肌肉有點(diǎn)脹的感覺了,嗯,說明有鍛煉效果了,過些天等發(fā)了薪水再去買一支練習(xí)拍,我常用的at700大約90g左右,練習(xí)拍在160g左右,應(yīng)該比較有練習(xí)效果吧,不過右胳膊眼見著要比左胳膊粗了,貌似還需要一個(gè)大點(diǎn)的杠鈴,把左胳膊也練一下才好
吃完晚飯,一怒之下,就把這三文件傳一php的服務(wù)器上,一試,完全正常,沒有亂碼,我,我不說了,看來是resin的原因,呆會(huì)再找找,看一下Quercus有沒最新的版本,是不是能支持的更好一些。
您可能感興趣的文章:
- php以post形式發(fā)送xml的方法
- php生成xml時(shí)添加CDATA標(biāo)簽的方法
- php輸出xml必須header的解決方法
- php的SimpleXML方法讀寫XML接口文件實(shí)例解析
- php的webservice的wsdl的XML無法顯示問題的解決方法
- PHP輸出XML到頁(yè)面的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)xml與json之間的相互轉(zhuǎn)換功能實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)xml與json之間的相互轉(zhuǎn)換功能,結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)xml轉(zhuǎn)json及json轉(zhuǎn)xml的相關(guān)原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值2016-07-07
全面解析PHP驗(yàn)證碼的實(shí)現(xiàn)原理 附php驗(yàn)證碼小案例
這篇文章主要為大家全面解析了PHP驗(yàn)證碼的實(shí)現(xiàn)原理,附php驗(yàn)證碼小案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
使用php檢測(cè)用戶當(dāng)前使用的瀏覽器是否為IE瀏覽器
檢測(cè)用戶當(dāng)前瀏覽器是否為IE瀏覽器,在某些情況下是很有必要的,下面有個(gè)不錯(cuò)的示例,經(jīng)測(cè)試還不錯(cuò),需要的朋友可以參考下2013-12-12
常用的PHP數(shù)據(jù)庫(kù)操作方法(MYSQL版)
最近一直在折騰自己的網(wǎng)站首頁(yè),寫的大部分PHP腳本都要用到和MYSQL數(shù)據(jù)庫(kù)相關(guān)的操作,今天把這些方法和大家分享一下,希望大家能多多交流!2011-06-06
php定義一個(gè)參數(shù)帶有默認(rèn)值的函數(shù)實(shí)例分析
這篇文章主要介紹了php定義一個(gè)參數(shù)帶有默認(rèn)值的函數(shù),實(shí)例分析了php參數(shù)帶有默認(rèn)值的函數(shù)使用技巧,需要的朋友可以參考下2015-03-03
PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制實(shí)例詳解
這篇文章主要介紹了PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制,結(jié)合實(shí)例形式深入淺出的分析了php驗(yàn)證碼的原理、實(shí)現(xiàn)步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
PHP開發(fā)中常用的三個(gè)表單驗(yàn)證函數(shù)使用小結(jié)
PHP Web開發(fā)中常用的三個(gè)表單驗(yàn)證函數(shù),這些都是一些經(jīng)常用到的判斷函數(shù)。2010-03-03
PHP訪問數(shù)據(jù)庫(kù)集群的方法小結(jié)
這篇文章主要介紹了PHP訪問數(shù)據(jù)庫(kù)集群的方法,結(jié)合實(shí)例形式總結(jié)分析了三種常見的PHP訪問數(shù)據(jù)庫(kù)集群的技巧,需要的朋友可以參考下2016-03-03

