检查ascii纯文本

DGT*_*DGT 2 html javascript jquery html5

如何检查上传的文件是否为ascii纯文本?

$("#my_file").change(function(){
    //alert if not ascii 
});
<input type="file" name="my_file" id="my_file" />
Run Code Online (Sandbox Code Playgroud)

mae*_*ics 5

使用HTML5文件API(尚未最终确定并且不受所有主要浏览器的所有版本支持),您可以通过读取原始文件内容FileReader.readAsBinaryString(file)并确保每个字节(字符)具有ASCII字符范围内的值(0-127) ).

例如(请参阅此处的jsFiddle工作):

function ensureAsciiFile(evt) {
  var file, files=evt.target.files;
  for (var i=0; file=files[i]; i++) {
    var reader = new FileReader();
    reader.onload = (function(theFile, theReader) {
      return function(e) {
        var fileContents = theReader.result;
        if (fileContents.match(/[^\u0000-\u007f]/)) {
          alert('ERROR: non-ASCII file "' + theFile.name + '"');
        } else {
          alert('OK: ASCII file "' + theFile.name + '"');
        }
      };
    })(file, reader);
    reader.readAsBinaryString(file);
  }
}
$('#my_file').change(ensureAsciiFile);
Run Code Online (Sandbox Code Playgroud)