Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iñ;t&xEB;rn和xE2;ti&xF4;n&xE0;利兹æ;ti和xF8;n显示为I࿽;t&xffd;rn和xFFFD;ti和xFFFD;n࿽;利兹࿽;ti和xFFFD;javascript页面上的n_Javascript - Fatal编程技术网

Iñ;t&xEB;rn和xE2;ti&xF4;n&xE0;利兹æ;ti和xF8;n显示为I࿽;t&xffd;rn和xFFFD;ti和xFFFD;n࿽;利兹࿽;ti和xFFFD;javascript页面上的n

Iñ;t&xEB;rn和xE2;ti&xF4;n&xE0;利兹æ;ti和xF8;n显示为I࿽;t&xffd;rn和xFFFD;ti和xFFFD;n࿽;利兹࿽;ti和xFFFD;javascript页面上的n,javascript,Javascript,我接收一个csv文件,其中包含测试值'Iñtërn–tiônálizætiôn',并使用JavaScript将其输出到一个简单的HTML表 该表将输出显示为I�T�注册护士�钛�N�利兹�钛�N我一直在网上搜索,并尝试了更改字体和字符集的建议(尝试了UTF-8、UTF-16、windows-1252、iso 8859-1和iso 8859-5),但没有任何效果 它是一种拖放操作,接收csv并将其更改为网页上的HTML表格,并使用xml输出同一表格的word文档 对不起,我应该说:-这个页面上没有

我接收一个csv文件,其中包含测试值'Iñtërn–tiônálizætiôn',并使用JavaScript将其输出到一个简单的HTML表

该表将输出显示为I�T�注册护士�钛�N�利兹�钛�N我一直在网上搜索,并尝试了更改字体和字符集的建议(尝试了UTF-8、UTF-16、windows-1252、iso 8859-1和iso 8859-5),但没有任何效果

它是一种拖放操作,接收csv并将其更改为网页上的HTML表格,并使用xml输出同一表格的word文档

对不起,我应该说:-这个页面上没有PHP,它都发生在本地浏览器中,因此是JavaScript。此外,我无法控制正在使用的文件的编码或用户浏览器中的设置。我猜想,我的大多数用户都将在excel中创建此文件

代码如下:

  <div id="drop_zone">Drop files here</div>
<output id="list"></output>

<script type="text/javascript" >

var URLadd = "My url here";
var OutString = [];
var TestFunc = [];
function handleFileSelect(evt) { // function 1 bracket
    evt.stopPropagation();
    evt.preventDefault();
    var files = evt.dataTransfer.files; // FileList object.
    // files is a FileList of File objects. List some properties.
    var output = []; 
    oForm = document.forms[0]; 
    oText = oForm.elements["Inst"];
    var InstCode = oText.value;
   if (InstCode == "")
   {
    InstCode = "<b>Please enter your institution code</b>";
   }
    for (var i = 0, f; f = files[i]; i++) { // loop 1
      if (f.name.match('\.csv')) { // if 1
      // this part is for when a csv file is drag n dropped
    var Filename = decodeURI(escape(f.name));
        var reader = new FileReader();
        // when the file loads, the function beneath is run   
        reader.onload = (function(theFile) { // function 2

           // this function is executed before it is returned, by the last parenthesis (f)         
       return function(e) { //function 3            
         var contents = e.target.result;
        var FileLines = contents.split( "\n" );
        var LineCount = FileLines.length;
        OutString = '<table id="mytab" border="1" width="100%"><tr>';
        var ColCount = 1;
        for (var i=1; i<LineCount; ++i)
        { // loop 2

         if (ColCount>4)
            {ColCount=0;}
         if(ColCount==0)
           { // if 2
              OutString += '</tr><tr>';
              ColCount = 1;
           } // close if 2
         OutString += '<td width=25%>';
         var CommaSplit = FileLines[i].split(",");
         var CommaCount = CommaSplit.length;
                          if (CommaCount == 5)
                  { // if 3
                      OutString += "<strong> " + CommaSplit[0] + " " + CommaSplit[1] + "</strong><br>";
                      OutString += "Username: " + CommaSplit[3] + "<br>Password: " + CommaSplit[3];
                      OutString += "<br>Institution Code: " + InstCode + "<br>"  + URLadd;

                      ColCount += 1;

                  } else { // else of if 3
                     for (var j= 0; j<CommaCount; ++j)
                     { // loop 3
                         OutString +=   CommaSplit[j] + '<br>';
                         ColCount += 1;
                     } // close loop 3
                } //close if 3
                  OutString += '</td>';

        } // close loop 2
        OutString += '</tr></table>';
        TestFunc = '<html xmlns:v="urn:schemas-microsoft-com:vml" ';
            TestFunc += 'xmlns:o="urn:schemas-microsoft-com:office:office" ';
            TestFunc += 'xmlns:w="urn:schemas-microsoft-com:office:word" ';
            TestFunc += 'xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" ';
            TestFunc += 'xmlns="http://www.w3.org/TR/REC-html40">';
            TestFunc += '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta><title>Passwords Doc</title>';
            TestFunc += '<style>v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape behavior:url(#default#VML);}</style>';
            TestFunc += '<style>@page{mso-page-orientation: landscape; size:29.7cm 21cm; margin:0cm 0cm 0cm 0cm;}';
            TestFunc += '@page Section1 {mso-header-margin:0in; mso-footer-margin:0in; mso-header: h1; mso-footer: f1; }';
            TestFunc += ' div.Section1 { page:Section1; }';
            TestFunc += 'table#mytab{ margin: 0.2in 0.2in 0.2in 0.2in; width:0px; height:0px; overflow:hidden;}';

             TestFunc += '</style><xml><w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom><w:DoNotOptimizeForBrowser/>';
            TestFunc += '</w:WordDocument></xml></head><body><div class="Section1">';
            TestFunc += OutString;
            TestFunc += '</div></body></html>';
            var OutPutLine = "<a href='data:application/msword;charset=UTF-8, " + encodeURIComponent(TestFunc) + "' download='" + decodeURIComponent(escape('Login Slips.doc')) + "' ><input id='Button1' type='button' value='Open printable sheet' /></a>";
            output.push(OutPutLine);  
            document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';    
        var span = document.createElement('span');
        span.innerHTML = [OutString].join('');
        document.getElementById('list').insertBefore(span, null);    

       }; // close function 3

        })(f); // close function 2
        reader.readAsText(f);         
         // this creates the button that opens the finished document    
        //var OutPutLine = "<a href='WordTemplate.doc' ><input id='Button1' type='button' value='Open printable sheet' /></a>";
              output.push(OutPutLine);   

      } else { // else of if 1
       // this triggers if its not a csv file that drag n drops
           output.push('<strong>', escape(f.name), ' is not a comma seperated (.csv) file!!!!</strong>');
      }     // close if 1          
    } // close loop 1  
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
} // close function 1

  function handleDragOver(evt) { // function 4
    evt.stopPropagation();
    evt.preventDefault();
    evt.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy.
  } // close function 4

  // Setup the dnd listeners.
  var dropZone = document.getElementById('drop_zone');
  dropZone.addEventListener('dragover', handleDragOver, false);
  dropZone.addEventListener('drop', handleFileSelect, false);
</script>
将文件放到这里
var URLadd=“我的url在此”;
var OutString=[];
var TestFunc=[];
函数句柄文件选择(evt){//函数1括号
evt.stopPropagation();
evt.preventDefault();
var files=evt.dataTransfer.files;//文件列表对象。
//文件是文件对象的文件列表。请列出一些属性。
var输出=[];
oForm=document.forms[0];
oText=形式元素[“Inst”];
var InstCode=oText.value;
如果(InstCode==“”)
{
InstCode=“请输入您的机构代码”;
}
对于(vari=0,f;f=files[i];i++){//循环1
if(f.name.match('\.csv')){//if 1
//此部分用于拖放csv文件时
var Filename=decodeURI(转义(f.name));
var reader=new FileReader();
//加载文件时,将运行下面的函数
reader.onload=(函数(theFile){//函数2
//此函数在返回前由最后一个括号(f)执行
返回函数(e){//函数3
var内容=e.target.result;
var FileLines=contents.split(“\n”);
var LineCount=FileLines.length;
突出='';
var ColCount=1;
对于(var i=1;i4)
{ColCount=0;}
if(ColCount==0)
{//if 2
突出+='';
ColCount=1;
}//如果为2,则关闭
突出+='';
var CommaSplit=FileLines[i]。拆分(“,”;
var CommaCount=CommaSplit.length;
如果(CommaCount==5)
{//if 3
突出显示+=“”+CommaSplit[0]+“+CommaSplit[1]+”
”; OutString+=“用户名:”+CommaSplit[3]+“
密码:”+CommaSplit[3]; OutString+=”
机构代码:“+InstCode+”
“+URLadd; ColCount+=1; }else{//if 3的else
对于(var j=0;j您是否完成了此处列出的所有操作?)� 字符表示被解释为UTF-8的字符串中的无效字节。这意味着您的基本字节字符串(来自文件或数据库)以传统编码(如ISO-8895-1)进行物理存储并在以后强制解释为UTF-8。通过在文本编辑器中打开文件并将其重新保存为UTF-8来更改文件编码。如果处理链中存在更多编码错误,这当然不会有可靠的帮助。抱歉,我应该说:-我无法控制正在使用的文件的编码或用户的br中的设置我的大多数用户将在excel中创建此文件,因此我想我正在寻找一种以编程方式转换为utf-8的方法,如果这是解决方案的话� 字符表示字符串已断开。此时,您无法对HTTP头或其他任何操作提供帮助。字符串将保持断开状态。您必须确定处理链中断开字符串的点。
reader.readAsText(f);
看起来可疑。请尝试
reader.readAsText(f,“Windows-1252”)
.Tomalak,这真是太棒了!把它作为答案放进去,我会很乐意接受的。谢谢。