初めての店舗開業を成功させよう>>

就職活動の為、内定を頂いた会社から
初心者だけど、独学の実力を見るうえで課題を出されました。

あるuibuntu Linuxでバッチプログラムを作っています。
大体の挙動は問題ないのですが。

文字コードをEUC-JPでcsvに出力する点で
文字コードが変換されていないようなので、質問させてください

$this->msg = mb_convert_encoding($this->msg,'EUC-JP','auto');
と記述して、出力した後、
kkc -c コマンドで出力ファイルの文字コード取得したところ
ASCIIと表示されました。

php.iniは
mbstring.detect_order = auto
default_charset = "EUC-JP"
mbstring.internal_encoding = EUC-JP
mbstring.http_output = EUC-JP

お手数ですが、ご教授願いないでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

kkc -c じゃなくて nkf --guess で調べてみては?

この回答への補足

ご親切に対応して下さって有難う御座います。

言われた通り、nkf --guess file名で調べてもやはりASCIIと表示されます。

mb_convertの使い方にLinuxもwinも関係ないとは思ってはいるのですが、
関係があrったりするのでしょうか。
回答に再々の質問で申し訳ありませんが、宜しくお願い致します。

補足日時:2011/07/23 12:06
    • good
    • 0

>autoをASCIIに変えてもダメと言う事ですよね。



ごめんなさい、説明がわるかったのかもしれません。

「ASCII」のファイルはSHIFT-JISでもEUCでもUTF8でもなく、
ただの「ASCIIテキスト」だということです。
文字コードがいろいろ必要なのは、マルチバイト文字があるからです
マルチバイト文字を含んでいないファイルは、変換の必要もないし
変換することは理論上できません。

#4の補足は改行コードだけ変換する可能性があることを提示しただけで
理解できないのであれば忘れてもらって結構です。
ちなみに前回の書き込みは完全に私の勘違いで、LF→CR+LFではなく
CR+LF→LFですね。失礼しました。

この回答への補足

ご親切に再度回答をして下さって有難う御座います。

ただのASCIIだとダメだと、今回の件で本当に勉強になりました。
仕様としては改行コードはLFでした。

mb_convert_encodingで変換出来ないのであれば、
改行コードも一緒だと思っていましたが、
改行コードだけは可能なんですね。

本当にありがとう御座います。

補足日時:2011/07/25 12:02
    • good
    • 0

まぁ最初からASCIIならしょうがないですね・・・



ちなみにEUCの環境は改行コードがLFだと思います
SHIFT-JISやUTF8を想定しているなら絶対ではないですが往々にして
CR+LFに変換の必要があるかもしれません。
よくよく仕様の確認が必要です。

この回答への補足

ご回答有難う御座います。

php.iniのdefault_chara等は全てEUC-JPに変えてやってみましたが、
やはりダメでした。
元々ASCIIだと mb_convert_encodeing($str,"EUC-JP","aut");
のautoをASCIIに変えてもダメと言う事ですよね。

元データの保存形式をEUC-JPに変えてもデータがシングルバイトなので、変換は効かないと言う事だと前の方の回答で認識してしまったのですが・・・

以上、宜しくお願い致します。

補足日時:2011/07/25 11:30
    • good
    • 0

元データがホントにASCIIコードのみならマルチバイトコードを含んでないので


日本語EUCに変換できなくて当然じゃないでしょうか?

元データにマルチバイトコードが含まれてることを確認できていますか?

この回答への補足

ご親切に有難う御座います。

元データは↓のアクセスログを
2011/04/26 00:00:00/path/url/top.html245

のアクセス集計を出力した(↓)内容になります。
00:00 0 0 0 245
どちらもマルチバイトのデータは含んでいないのです。

尚、元データを nkf --guess で調べたら
やはりASCIIでした。

元データが日付とシングルバイトのデータだと
変換されないとは知りませんでした。

教えて下さってありがとう御座います。

補足日時:2011/07/24 20:06
    • good
    • 0

>独学の実力を見るうえで課題を出されました。


それ人自分でやらないと意味ないだろ。
人に聞いてどうする?
こんな事が解けないなら内定辞退しろよ。
(独学でできると嘘をついて貰った内定なんて入社したらあっという間にボロが出てどうせ使えない奴の烙印を押されて退社することになるぞ)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング