実現したいこと
CSVアップロード時の文字化けを解消したい。
前提
閲覧いただきありがとうございます。
Node.js / React でのプログラムを勉強中ですが、
どうしても文字エンコードが上手く出来ず(文字化けが解消出来ず)、こちらに質問させていただきました。
色々なサイトを拝見し、文字エンコードについてサンプルコードを改変しながら実行してきましたが、
解決の糸口が見当たらず、現在に至っております。。。
「react upload 文字化け」「react csv 読み込み」等
まだプログラムの意味も一行ずつ理解する初心者では御座いますが、
ご教授・参考サイト等、ご教授、ご指摘頂ければ幸いです。
どうぞ、よろしくお願い致します。
該当のソースコード
import React from 'react' import { useState } from 'react' import Encoding from 'encoding-japanese'; import { parse } from 'papaparse' function ReadString() { const [data, setData] = useState([]) return ( <> <div style={{height: "100px", width: "100%", background: "#ddd"}} onDragOver = {(event) => { event.preventDefault() console.log('onDragOver') }} onDrop = {(event) => { event.preventDefault() // console.log('onDrop') console.log(event.dataTransfer.files) Array.from(event.dataTransfer.files).map( async file => { let text = await file.text() console.log(encoding) const encoding = Encoding.detect(text); const unicodeString = Encoding.convert(text, { to: 'unicode', from: encoding, type: 'string', }); let result = parse(unicodeString, { header: true, dynamicTyping: true, skipEmptyLines: true, }) console.log(result) setData(result.data) }) }} > </div> </> ); } export default ReadString;
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ページエンコード:UTF-8
アップロードファイル:Shift-JIS
└ アップロードするファイルは、PCで開くと Shift-JIS ですが、コード内 console.log(encoding) では、UNICODE と出ています。
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"papaparse": "^5.3.2",
"encoding-japanese": "^2.0.0",

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/24 16:08
2023/02/24 21:53