DB(OSはwin2003、DBはmySQL 文字コードはEUC)に対して
CSVファイルをインポート、エクスポートしようとしています。
入出力ファイル(CSVファイル)の文字コードはShift_JISのため、
文字コード変換が必要となってきています。
今、エクスポート(EUC→Shift_JIS)したCSVファイルを、
エクセルで確認すると極一部が文字化けしてしまいます。
そこで質問が4つあります。
1.文字化けは仕方ないことなのでしょうか?
2.文字化けする文字を特定することはできるのでしょうか?
3.エクスポート方法、変換方法によって文字化けする文字は変わってくるのでしょうか?
4.みなさんはこのような文字化けの問題をどのように回避した経験お持ちですか?
(文字化けは已む無し、文字コードを意地でも統一した、
文字を特定して特殊文字に置き換えたなどなど)
基本的なことと思いますが、よろしくご教授願います。
(3.4.はもっと詳細がわからないと何とも言えないかもしれません。
ご回答頂く為には何を調べればいいのかからも教えてください。
よろしくお願いします。)
No.2ベストアンサー
- 回答日時:
>> DBはmySQL 文字コードはEUC
>> 1.文字化けは仕方ないことなのでしょうか?
DBがEUCを使用しているとのことなので、IBM拡張文字やNEC拡張文字は既に正しく記憶されていない可能性もあります。この場合は、既にデータ自体が正常では無いものを含んでいるので、‘仕方ない’でしょう。
含んでいないなら、何とかなります。
>> 2.文字化けする文字を特定することはできるのでしょうか?
一部だけ化けるとのことなので、多くの場合以下の文字でしょう
・シフトJIS:13区の特殊記号
・シフトJIS:115区から119区のIBM拡張文字
・シフトJIS:89区から92区のNEC選定IBM拡張文字
・他にユーザ定義文字領域
実際これらの文字を使って試せば分かります
>> 3.エクスポート方法、変換方法によって文字化けする文字は変わってくるのでしょうか?
変換方法によって変わります。
EUC-JP → Shift_JIS ではなく eucJP-win → SJIS-win
として変換すればwindowsで使用している多くの文字は救われるでしょう。(当然、DB上で既に化けていないことが前提です)
>> 4.みなさんはこのような文字化けの問題をどのように回避した経験お持ちですか?
・DBは、UTF-8を使用する。
・PHPでは、内部コードとして Shift_JISは使用しない。
・Shift-JISな文字の扱いが必要な時は SJIS-win を使う。
・EUCで他の文字セットと変換があるときは、EUC-JPではなく eucJP-winとして扱う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
- HTML・CSS HTMLエディタBracketsの文字化け 3 2022/04/28 14:50
- HTML・CSS docxをmht形式で保存したファイルをedgeで開くと文字化けする 1 2022/07/29 13:14
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
byte[] を long,float とかに...
-
Path型をString型へ変換する(Java)
-
javascriptで文字列のsjis利用...
-
カタカナをローマジに変換する。
-
半角カタカナをローマ字変換す...
-
C言語32bitから64bitの移行につ...
-
半角カナ文字の変換
-
javaの初歩的な質問です。
-
int型のゼロ埋め
-
JavaのStringクラスに「外字」...
-
Integer.parseInt()について ...
-
UTF-8とUnicodeの互換性
-
byte配列をImageに変換する
-
TEXTAREAからのデータを改行入...
-
スマホでテキストボックスの随...
-
javaでのOracleのデータ登録の...
-
UDF-8の文字列をSJISに変換する...
-
VC++にてCString型のフルパスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
javascriptで文字列のsjis利用...
-
int型のゼロ埋め
-
Visual Basic でのコードをASCI...
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
JavaのStringクラスに「外字」...
-
C言語32bitから64bitの移行につ...
-
byte[] を long,float とかに...
-
UTF-8とUnicodeの互換性
-
[Javascript]エンターキー押下...
-
エクセルVBAで「〜」が表現でき...
-
Windows-31Jからutf-8への変換...
-
substring バイト単位でやりたい
-
IBM漢字コード⇒SJIS変換方法
-
byte配列をImageに変換する
-
Arduino(C言語) String "1101" ...
おすすめ情報