JS가 서버 인코딩 형식이 gb2312인 파일을 얻으면 내용이 깨집니다. ajax 네트워크 요청은 내부적으로 XMLHttpRequest를 사용하므로 요청하기 전에 인코딩 형식을 설정해야 하지만 xhr.setRequestHeader("accept", " text/csv ;charset=gb2312,*/*");는 효과가 없습니다. xhr.overrideMimeType("text/csv;charset=gb2312"); 설정만 정확합니다. 코드는 다음과 같습니다.
<span style="font-size:18px;">$.ajax({ type: "get", url:"http://7xnhdv.com1.z0.glb.clouddn.com/test1.csv", beforeSend: function(xhr) { //beforeSend定义全局变量 // xhr.setRequestHeader("accept", "text/csv;charset=gb2312,*/*"); xhr.overrideMimeType("text/csv;charset=gb2312"); }, success: function(xmlDoc, textStatus, xhr) { if(xhr.status == 200) { $('#view0').text(xmlDoc); } } } );</span>
overrideMimeType 함수는 서버로 전송된 헤더를 재정의하여 text/csv;charset=gb2312를 MIME 유형으로 지정합니다.
ps: js가 중국어로 잘못된 문자를 표시하거나 페이지에 잘못된 문자를 표시하는 솔루션
①.js 파일에 중국어 문자가 깨져 표시됩니다
Javascript 파일 XX.js를 편집하고 저장할 때 인코딩 체계(예: GBK)가 있습니다. 파일을 열 때 사용된 인코딩(예: UTF-8)이 저장 시 인코딩 체계와 일치하지 않는 경우 한자가 깨집니다. 나타날 것입니다.
해결책:
(1) 편집기로 열고 탐색할 때 원본 파일 인코딩(예: GBK)과 일치하는 인코딩 방법을 선택하면 문자가 깨져 보이지 않습니다.
(2) Eclipse의 패키지 탐색기에서 왜곡된 XX.js를 선택하고 마우스 오른쪽 버튼 클릭 메뉴에서 속성을 선택한 다음 텍스트 파일 인코딩에서 XX.js로 편집 및 저장할 때 인코딩(예: GBK)을 선택하고, 그러면 정상적으로 표시될 수 있습니다 ;
②웹사이트 페이지의 JavaScript에서 중국어 필드가 깨졌습니다
XX.js의 한자는 Eclipse나 편집기에서 정상적으로 표시됩니다. 페이지에서 XX.js를 호출하면 실행 후 페이지 결과의 중국어 필드에 잘못된 문자가 표시됩니다.
해결책:
XX.js를 참조하는 페이지에 XX.js 파일의 인코딩 방법을 "표시"하여 XX.js 파일 자체의 인코딩 방법(예: GBK)과 일치하도록 합니다.
추천:
(1) Eclipse 또는 Myeclipse를 사용하여 XX.js를 생성하고 편집할 때 먼저 Text 파일 인코딩을 UTF-8로 변경한 후 편집하고 저장하는 것이 좋습니다.
(2) XX.js를 편집하고 저장하려면 텍스트 문서나 다른 편집기를 사용하십시오. UTF-8 인코딩으로 저장하는 것이 좋습니다.
(3) "표시"하고 XX.js를 참조하는 페이지에 XX.js 파일의 인코딩 방법 UTF-8을 추가합니다.
<script type="text/javascript" language="JavaScript" src="/js/XX.js" charset=“utf-8”></script>