在Windows系统中下载时,csv文件中的日语字符变得垃圾 [英] csv file Japanese characters got junk while I download in windows system

查看:134
本文介绍了在Windows系统中下载时,csv文件中的日语字符变得垃圾的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HTML

<button class="btn btn-raised btn-inverse btn-sm" charset="shift_jis" add-bom="true" ng-csv="getSampleData" csv-header="['コード','勘定科目名','Main_code']" filename="{{ samplefilename }}.csv" field-separator="{{separator}}" decimal-separator="{{decimalSeparator}}" ><span translate> load.common.sample </span> </button>

控制器

$scope.csv = {
     content: null,
     header: true,
     headerVisible: true,
     separator: ',',
     separatorVisible: true,
     result: null,
     encodingVisible: true,
     uploadButtonLabel: "upload a csv file"
   };

$scope.samplefilename = "Sample Support Code List"

$scope.getSampleData = [{コード: 'code _1',勘定科目名: '勘定科目名',Main_code:'maincode1'},{コード: 'code_2',勘定科目名: 'name_2', Main_code: 'Miancode2'}];

在Ubuntu或Mac中下载csv文件时,日语字符看起来不错,而在Windows系统数据(日语数据)中下载时会变得垃圾

While downloading csv file in Ubuntu or in Mac, Japanese characters looks good, while downloading it in windows system data(Japanese data) gets junk

这是垃圾数据的屏幕截图

here is the screenshot of junk data

推荐答案

在此问题中,主要问题是日语字符不受UTF-8编码支持,因此您必须使用shift_jis编码创建文件.

filename ="filename_123.csv"

filename = "filename_123.csv"

CSV.open(#{Rails.root}/public/FOLDER_NAME/#{filename}","w",编码:params [:encoding])做| csv | main_array.each做| array | csv<<大批 结尾 结束

CSV.open("#{Rails.root}/public/FOLDER_NAME/#{filename}", "w", encoding: params[:encoding]) do |csv| main_array.each do |array| csv << array end end

csv = CSV.read(#{Rails.root}/public/FOLDER_NAME/#{filename}",编码:params [:encoding])

csv = CSV.read("#{Rails.root}/public/FOLDER_NAME/#{filename}", encoding: params[:encoding])

csv = CSV.read(#{Rails.root}/public/FOLDER_NAME/#{filename}",编码:params [:encoding],标头:true)

csv = CSV.read("#{Rails.root}/public/FOLDER_NAME/#{filename}",encoding: params[:encoding], headers:true)

File.write(#{Rails.root}/public/FOLDER_NAME/#{filename}",csv,编码:params [:encoding])

File.write("#{Rails.root}/public/FOLDER_NAME/#{filename}", csv, encoding: params[:encoding])

文件<< #{文件名}"

files << "#{filename}"

send_file#{Rails.root}/public/FOLDER_NAME/#{filename}",文件名:ERB :: Util.url_encode(#{filename}"),:type =>"application/csv; charset = #{params [:encoding] =='shift_jis'?'shift_jis':'UTF-8'}"

send_file "#{Rails.root}/public/FOLDER_NAME/#{filename}", filename:ERB::Util.url_encode("#{filename}") , :type => "application/csv; charset= #{params[:encoding] =='shift_jis' ? 'shift_jis' : 'UTF-8' }"

这篇关于在Windows系统中下载时,csv文件中的日语字符变得垃圾的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆