【问题标题】:js how to convert string to utf-8js如何将字符串转换为utf-8
【发布时间】:2017-10-10 09:03:10
【问题描述】:

我正在尝试解析 csv 文件,但此文件格式为 ANSI。因此,当我在页面上打印出结果时,如下所示: ANSI file output

我在我的测试 php 文件中使用以下代码来转换字符串:

iconv(mb_detect_encoding($str, mb_detect_order(), true), "UTF-8", $str);

那么它现在看起来很正常:

normal output

但我想在前端进行转换,使用 js,那么有什么方法可以将字符串转换为 utf-8 格式,如 php 方法 -> iconv()。

谢谢。

【问题讨论】:

  • 如果可以使用节点,请查看核心模块,'string_decoder'。
  • ANSI 使用什么代码页,究竟是什么?没有“ANSI”这样的东西。

标签: javascript php utf-8


【解决方案1】:

以下是使用文件输入控件读取一个文件的示例代码,并显示第一行以及文件的一些属性:

<input type="file" id="fileinput" />
<script type="text/javascript">
 function readSingleFile(evt) {
 //Retrieve the first (and only!) File from the FileList object
 var f = evt.target.files[0]; 

 if (f) {
  var r = new FileReader();
  r.onload = function(e) { 
      var contents = e.target.result;
    alert( "Got the file.n" 
          +"name: " + f.name + "n"
          +"type: " + f.type + "n"
          +"size: " + f.size + " bytesn"
          + "starts with: " + contents.substr(1, contents.indexOf("n"))
      );  
    }
    r.readAsText(f);
  } else { 
    alert("Failed to load file");
  }
}

 document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
</script>

您可以使用 HTML5 FileReader API 读取文件。在尝试以错误的编码加载时,在内容被破坏后尝试转换文件是没有意义的。

如果您想深入了解,请尝试查看以下文章:

htmlgoodies

html5rocks

【讨论】:

  • 谢谢,但问题是原始文件格式是ANSI,所以我想把文件格式设为UTF-8,或者将读取的字符串转换为utf-8。
猜你喜欢
  • 2013-03-02
  • 1970-01-01
  • 2013-08-20
  • 2010-09-21
  • 2012-07-02
  • 1970-01-01
  • 2010-11-03
相关资源
最近更新 更多