新手问题 Rails 上传文件,编码问题

selenium · 2019年06月26日 · 最后由 jasl 回复于 2019年06月26日 · 1365 次阅读

控制器里面 我用 params[:file].read 取到了文件内容的字符串,文件是 CSV 的文本文件 "\xE5\xA7\x93\xE5\x90\x8D,\xE8\xB4\xA6\xE5\x8F\xB7\xEF\xBC\x88\xE5\x8F\xAF\xE4\xBB\xA5\xE4\xB8\xBA\xE7\xA9\xBA\xEF\xBC\x8C\xE4\xB8\xBA\xE7\xA9\xBA\xE6\x97\xB6\xEF\xBC\x8C\xE7\xB3\xBB\xE7\xBB\x9F\xE6\xA0\xB9\x……

这是什么编码,怎么可以转换成对应的汉字

CSV 其实是纯文本,没有地方记录本身的编码。Windows 用户的默认编码可能是 GBK,试试 params[:file].read.encoding('UTF-8', 'GBK')

看到了一篇文章,讲解了处理 CSV 的几种方式,非常 nice,楼主可以试试 https://ruby-china.org/topics/31444

CSV 俩坑,都跟 Win 或者 Excel 有关,一个是 UTF8 with BOM,另一个是 非 UTF8 编码

需要 登录 后方可回复, 如果你还没有账号请 注册新账号