textarea中源文件的“汉字”是乱码!怎么办啊?搞了一上午了,大侠帮我!!!

bxxxr 2003-07-22 01:29:13
1.<br>
<textarea id=text1 style="width: 90%; height: 50%">啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺</textarea><br>

2.<br>
<input id=inpu2 onclick=f_inpu2() type=button value="search 0-3754">
<input id=inpu2a><br>
<iframe id=ifra2 src="about:" width=90% height=50%></iframe><br>

3.<br>
<input id=inpu3 onclick=f_text3() type=button value="source"><br>
<textarea id=text3 style="width: 90%; height: 50%"></textarea><br>



<script>
///////////////////////////// user function //////////////////////////////////
function f_inpu2()
{
tmpsrc='<iframe id=ifra2 src="http://www1.baidu.com/baidu?word='+text1.value.charAt(inpu2a.value)+'"width=90% height=50%></iframe>' //prepare the search char

document.all.ifra2.outerHTML=tmpsrc //run search

inpu2a.value++ //prepare next search
}

function f_text3()
{
text3.value=loadContent(document.getElementById("ifra2").src) //put source to text3
}
function loadContent(strURL) //I get this code from a friend (used for "function f_text3()")
{
var strContent = "";
if (typeof strURL != "string" || strURL == "")return strContent;
try
{
var oProxy = new ActiveXObject("Microsoft.XMLHTTP");

oProxy["Open"]("GET", strURL, false);
oProxy["Send"]();
strContent = oProxy["responseText"];
}
catch(e){status = e.description}
return strContent;
}

</script>


<script>
///////////////////////////// system function /////////////////////////////////
function window.onload()
{
inpu2a.value=0 //set init is null
}
</script>
...全文
163 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgfong 2003-07-23
  • 打赏
  • 举报
回复
如果读取的是框架里面的内页,而且要账号密码才可以登陆,这可以不
bxxxr 2003-07-23
  • 打赏
  • 举报
回复
谢谢大家!!!我写出来了^-^给分喽...

1.<br>
<textarea id=text1 style="width: 90%; height: 50%">啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺</textarea><br>

2.<br>
<input id=inpu2 onclick=f_inpu2() type=button value="search 0-3754">
<input id=inpu2a><br>
<iframe id=ifra2 src="about:" width=90% height=50%></iframe><br>

3.<br>
<input id=inpu3 onclick=f_text3() type=button value="source"><br>
<textarea id=text3 style="width: 90%; height: 50%"></textarea><br>



<script>
///////////////////////////// user function //////////////////////////////////
function f_inpu2()
{
tmpsrc='<iframe id=ifra2 src="http://www1.baidu.com/baidu?word='+text1.value.charAt(inpu2a.value)+'"width=90% height=50%></iframe>' //prepare the search char

document.all.ifra2.outerHTML=tmpsrc //run search

inpu2a.value++ //prepare next search
}

function f_text3()
{
text3.value=bytes2bstr(loadContent(document.getElementById("ifra2").src)) //put source to text3
}
function loadContent(strURL) //I get this code from a friend (used for "function f_text3()")
{
var strContent = "";
if (typeof strURL != "string" || strURL == "")return strContent;
try
{
var oProxy = new ActiveXObject("Microsoft.XMLHTTP");

oProxy["Open"]("GET", strURL, false);
oProxy["Send"]();
/// strContent = oProxy["responseText"]; //get Text html
strContent = oProxy["responseBody"]; //get Bin html, and then change2text
}
catch(e){status = e.description}
return strContent;
}
function bytes2bstr(vin) //Have this code from a friend (used for "function f_text3()")
{
var st = new ActiveXObject("adodb.stream")
with (st){
Type = 2 //var adTypeBinary = 1; var adTypeText = 2
Open()
WriteText(vin)
Position = 0
Charset = "GB2312"
Position = 2
return ReadText
}
}

</script>


<script>
///////////////////////////// system function /////////////////////////////////
function window.onload()
{
inpu2a.value=0 //set init is null
}
</script>
xuzuning 2003-07-23
  • 打赏
  • 举报
回复
这不就是用xmlhttp抓取网页吗?
造成乱码的原因是你用的是responseText,而responseText对中文支持不好。google的好用是因为他返回的是utf8编码。你可以用ResponseBody取得并做二进制到文本的转换。
给两个例子:
1、vbs的例子
<script language="vbscript">
Function bytes2BSTR(vIn)

Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn = ""

For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next

bytes2BSTR = strReturn

End Function
</script>

<script language=javascript>
var oDiv //添加用的节点
var nP //DIV的 padding-left
var xh //xmlhttp
function getXML()
{
oDiv = document.all.m
oDiv.innerHTML = "正在装载栏目数据,请稍侯......."
oDiv.style.display= ""
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",a.value,true)
xh.send()
}

function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{

oDiv.innerHTML = "完成"
}
else
{
oDiv.innerHTML = "抱歉,装载数据失败。原因:" + xh.statusText
}
}
}
</script>
URL:<input name=a value="http://www.microsoft.com">
<input onclick="javascript:getXML()" type="button" value="get HTML">
<input onclick="javascript:if(xh && xh.responseText) oDiv.innerHTML=bytes2BSTR(xh.ResponseBody)" type="button" value="output">
<div id=m></div>

2、js的例子
<input type=text name=url size=74 value="http://expert.csdn.net/Expert/topic/1754/1754016.xml?temp=.9112055">
<input type=button value=载入 onClick="test()"><br>
<textarea name=txt cols=80 rows=14></textarea>

<script language="javascript">
var s="";
function LoadHTML(url) {
var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
xmlHTTP.open("GET",url,false);
xmlHTTP.setRequestHeader("Contrn-type","text/html");
xmlHTTP.setRequestHeader("Contrn-charset","gb2312");

xmlHTTP.send();
var s = xmlHTTP.responseText;

if(xmlHTTP.responseText.indexOf("Error:")!=-1) {
alert(xmlHTTP.responseText);
}else {
return xmlHTTP.responseBody;
}
}

//二进制转换ASCII
var adTypeBinary = 1
var adTypeText = 2
function bytes2bstr(vin){
var st = new ActiveXObject("adodb.stream")
with (st){
Type = adTypeText
Open()
WriteText(vin)
Position = 0
Charset = "GB2312"
Position = 2
return ReadText
}
}

function test() {
ps = bytes2bstr(LoadHTML(document.all.url.value));
document.all.txt.value = ps;
}

</script>
lostnull 2003-07-23
  • 打赏
  • 举报
回复
各位大哥,可以把楼主的代码放到空的网页中试一下!!!
1.<br>
....
顶楼是一段完整的代码!!!
....
</script>
lostnull 2003-07-23
  • 打赏
  • 举报
回复
应该显示:
<html><head><title>百度搜索_啊</title><meta http-equiv="content-type" content="text/html;charset=gb2312">
......

而实际显示在textarea里的是:
<html><head><title>?ٶ???</title><meta http-equiv="content-type" content="text/html;charset=gb2312">
......
lostnull 2003-07-23
  • 打赏
  • 举报
回复
To:kingdomzhf(旭日东升)
楼主是说:
按下这个“search 0-3754”button
再按这个“source”按钮后

<textarea id=text3 style="width: 90%; height: 50%"></textarea><br>
这里面的汉字成了乱码!!!
kingdomzhf 2003-07-22
  • 打赏
  • 举报
回复
<textarea id=text1 style="width: 90%; height: 50%">啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺</textarea><br>
在我机器上正常
bxxxr 2003-07-22
  • 打赏
  • 举报
回复
3.textarea中的汉字全是????一类的
我是中文2000server/ie6sp1
把网页换成csdn也不行,只有google能正常显示,我现在需要用"百度"做自动搜索
bxxxr 2003-07-22
  • 打赏
  • 举报
回复
先电击"search 0-3754",然后电击"source",如果出现异常按F5刷新!
3.textarea中的代码就是2.iframe的源码
但是,中文是乱码?!救我!!!
jsidiot 2003-07-22
  • 打赏
  • 举报
回复
没有看懂什么意思?
怎么乱码?
但是我测试发现你的东西挺有意思
形印声传 2003-07-22
  • 打赏
  • 举报
回复
呵呵~~
bxxxr 2003-07-22
  • 打赏
  • 举报
回复
各位大哥,可以把楼主的代码放到空的网页中试一下!!!
1.<br>
....
顶楼是一段完整的代码!!!
....
</script>
snowboy2003 2003-07-22
  • 打赏
  • 举报
回复
编码问题,你网页中用的是什么编码?
bxxxr 2003-07-22
  • 打赏
  • 举报
回复
既然csdn没有人知道
大家进来聊天吧^-^
散分分分分分分分分分分分分分分分分分分分分分分!!!
bxxxr 2003-07-22
  • 打赏
  • 举报
回复
我不要用google
我就要百度!!!
NAMO是什么?能帮我写一个吗?
上面的代码function loadContent(strURL)是骆驼给的,google的好用,但我想要用百度的
Yanbin_Q 2003-07-22
  • 打赏
  • 举报
回复
google search xmlhttp 中文
buhuo 2003-07-22
  • 打赏
  • 举报
回复
这种情况很麻烦了,十之八九你用了NAMO。
删了重写了。

87,919

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧