ajax读取txt文本时乱码的解决方案

前言:第一次学习使用 ajax 就是用来读取文本


先给出现乱码的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax</title>

<script type="text/javascript">

var xmlhttp;
  function loadXMLDoc(url,cfunc)
  {
   if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
   }
   else
   {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   if (xmlhttp!=null)
   {
    xmlhttp.onreadystatechange=cfunc;
    xmlhttp.open("GET",url,true);

    xmlhttp.send();
    }
  }
 function myfunction()
 {
  loadXMLDoc("res/123.txt",function(){
     if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
      document.getElementById("ajaxid").innerHTML=xmlhttp.responseText;
     }

});
 }
</script>

</head>
 <style>
 #ajaxid
 {
 margin:20;
 background-color:#999999;
 font-size:25px;
 }
 </style>
<body>

<a href="javascript:void(0);" onclick="myfunction();">加载内容</a>
<div id="ajaxid"><h2>my</h2></div>
</body>
</html>


1、解决方法第一步,设置读取txt要显示的编码方式,要改的代码如下:

if (xmlhttp!=null)
    {
    xmlhttp.onreadystatechange=cfunc;
    xmlhttp.open("GET",url,true);

xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');

    xmlhttp.send();
    }

2、之后,需要更改需要读取的txt文本的编码方式,新建的文本文件默认为ANSI编码,更改为Unicode或者UTF-8。(注意,笔者这里使用的是IE11,如果你使用的是非IE浏览器,本文只具有借鉴作用)
ajax读取txt文本时乱码的解决方案
 
上一篇:背水一战 Windows 10 (63) - 控件(WebView): 基础知识, 加载 html, http, https, ms-appx-web:///, embedded resource, ms-appdata:///, ms-local-stream://


下一篇:在Windows系统搭建.NET Core环境并创建运行ASP.NET网站