(現在 過去ログ67 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■10327 / inTopicNo.1)  文字コード関連
  
□投稿者/ 悲しげ -(2017/02/02(Thu) 13:04:47)

    直接桐に関する懸案ではないのですが、ひとつ質問です。

    或るディレクトリ内の一群のファイル名を取得するに際して、
    「#ファイル検索」関数を使うとしばしば不具合を生じることを思い出しまして、
    代わりにDOSの「dir」コマンド→txt→テキスト読み込みを使いました。

    シェル実行 "dirtxt.bat"

    batの中身は、
     dir ○○*.csv /b > dir.txt
    とか
     dir ○○*.csv > dir.txt

    ところが、できあがったdir.txtの文字が化けていることがある。
    例えば
     ○○201604211530ᑐX.csv     (a)
    ここは正しくは
     ○○201604211530某漢字.csv   (b)
    のはず。
    これまでは(b)のようにリダイレクトされていて、(a)は今回初体験。

    調べてみると、デキストファイル(a)の文字コードは UFT-8 で
    (b)の方は シフトJIS でした。
    (ちなみに(a)の初出現はWin10マシン、これまでの(b)はVista以前)

    *

    以上が前置きで(^^;)、さて質問です。
    文字コードが常に シフトJIS になるような方法はあるでしょうか?

    *

    苦肉の策で思ったのは、受け皿ファイルたる dir.txt をシフトJISで予め用意しておき、
    中身をその都度手動で空にした上で追加する
     dir ○○*.csv /b >> dir.txt
    とかですが、他に名案は?

引用返信 [メール受信/OFF] 削除キー/
■10328 / inTopicNo.2)  Re[1]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/02(Thu) 13:29:08)
    No10327に返信(悲しげさんの記事)

    >○○201604211530ᑐX.csv

    投稿後にこう表示されましたが、ここの「&#5200」は大文字の「U」を
    90度左に回転させたもの、集合の記号にこんなのがありましたが、
    もちろん集合の含意ではなく、元はふつうの漢字です。
引用返信 [メール受信/OFF] 削除キー/
■10329 / inTopicNo.3)  Re[2]: 文字コード関連
□投稿者/ たゆー -(2017/02/02(Thu) 13:45:54)
    桐10ですか?
    私も、桐9では問題無かったのが桐10に更新してエラーになりました。

    その内容は、batファイルを印字コマンドで書き出すとき
    「utf」だったのです。そこで、印字開始コマンドを
    印字開始 "dirtxt.bat",SJIS出力=する
    このように変更で解決しました。
    しかし今回は、文字化けでもなにか実行されてるようなので
    違うかもしれませんが、私の経験です

引用返信 [メール受信/OFF] 削除キー/
■10330 / inTopicNo.4)  Re[3]: 文字コード関連
□投稿者/ ONnoji -(2017/02/02(Thu) 15:15:29)
    > 代わりにDOSの「dir」コマンド→txt→テキスト読み込みを使いました。
    >
    > シェル実行 "dirtxt.bat"
    >
    > batの中身は、
    >  dir ○○*.csv /b > dir.txt
    > とか
    >  dir ○○*.csv > dir.txt
    >
    > ところが、できあがったdir.txtの文字が化けていることがある。
    > 例えば
    >  ○○201604211530ᑐX.csv     (a)
    > ここは正しくは
    >  ○○201604211530某漢字.csv   (b)
    > のはず。
    > これまでは(b)のようにリダイレクトされていて、(a)は今回初体験。
    >
    > 調べてみると、デキストファイル(a)の文字コードは UFT-8 で
    > (b)の方は シフトJIS でした。
    > (ちなみに(a)の初出現はWin10マシン、これまでの(b)はVista以前)
    >
    > *
    >
    > 以上が前置きで(^^;)、さて質問です。
    > 文字コードが常に シフトJIS になるような方法はあるでしょうか?

    > >○○201604211530ᑐX.csv
    >
    > 投稿後にこう表示されましたが、ここの「&#5200」は大文字の「U」を
    > 90度左に回転させたもの、集合の記号にこんなのがありましたが、
    > もちろん集合の含意ではなく、元はふつうの漢字です。

    &#5200はこの文字ですね
     ↓
    ᑐ - Wiktionary
    https://en.wiktionary.org/wiki/%E1%91%90

    某漢字.csv が ᑐX.csv と表示されたのだから、OSのビーユージーの可能性がありますね。

    おそらく、DOS窓の表示もリダイレクトの出力結果と同じでしょうね。

    ちなみに、ファイル名に含まれる某漢字は何でしょうか?

    漢字がわかると再現できる人も現れると思いますが…

    > その内容は、batファイルを印字コマンドで書き出すとき
    > 「utf」だったのです。そこで、印字開始コマンドを
    > 印字開始 "dirtxt.bat",SJIS出力=する
    > このように変更で解決しました。
    > しかし今回は、文字化けでもなにか実行されてるようなので
    > 違うかもしれませんが、私の経験です

    当方の体験で申し上げると、桐10の印字コマンドでバッチを作成する場合、

    バッチファイルの文字コードが ANSI(SJISと同じ)でないと、batファイルは正しく実行されませんが、

    これは、Windows 7 環境でしか確認していません。

    ひょとして、Windows 10 では、バッチファイルの文字コードが UNICODE(これはUTF-16のこと)でも正常に動作しますか??

    ちなみに、当方には、WIndows10環境がないので確かめられません。


838×350 => 250×104

1486016129.jpg
/53KB
引用返信 [メール受信/OFF] 削除キー/
■10331 / inTopicNo.5)  Re[4]: 文字コード関連
□投稿者/ たゆー -(2017/02/02(Thu) 15:59:25)
    win10で
    batファイルの内容が、「dir・・・・・」の場合
    文字コードがUTF-16のままでは、瞬間的にDOS窓が表示されますが
    なにも実行されません

引用返信 [メール受信/OFF] 削除キー/
■10332 / inTopicNo.6)  Re[5]: 文字コード関連
□投稿者/ ONnoji -(2017/02/02(Thu) 16:25:53)
    2017/02/02(Thu) 16:57:29 編集(投稿者)
    2017/02/02(Thu) 16:27:40 編集(投稿者)

    > win10で
    > batファイルの内容が、「dir・・・・・」の場合
    > 文字コードがUTF-16のままでは、瞬間的にDOS窓が表示されますが
    > なにも実行されません

    なるほど、Windows10 でもバッチ( .bat )の文字コードは ANSI(SJIS)でないと実行出来ないんですね。

    後は「ᑐX に化けた普通の漢字」が判明すると現象を再現できる人も現れると思いますが…


引用返信 [メール受信/OFF] 削除キー/
■10333 / inTopicNo.7)  Re[6]: 文字コード関連
□投稿者/ hidetake -(2017/02/02(Thu) 21:27:38)
    備忘録

    cmd.exe /u /c dir *.csv /s > unicode.txt
    と、実行すると unicodeなファイルが出力される

    cmd.exe /a /c dir *.csv /s > ansi.txt
    と、実行すると ansi(Shift_JIS)なファイルが出力される

    ユニコードで記載されたバッチファイルの実行には
    コマンドプロンプトをユニコードに指定した上で
    実行すればよいのかと
    chcp 1200 とか chcp 12000 とか実行しても、コードの
    指定が間違っていると受け付けてくれない (;_;)
    utf-8 な chcp 65001 は受け付けてくれる

    Windowsはまだまだ日本語化と言うか、マルチバイトな
    コートについては十分ではないのですね!! orz

    http://daily-misc.blogspot.jp/2014/12/windowsunicode.html
    http://daily-misc.blogspot.jp/2014/04/windowsutf.html



引用返信 [メール受信/OFF] 削除キー/
■10334 / inTopicNo.8)  Re[7]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/03(Fri) 00:09:30)
    2017/02/03(Fri) 00:19:05 編集(投稿者)
    2017/02/03(Fri) 00:15:26 編集(投稿者)

    No10333に返信(hidetakeさんの記事)

    え〜、マトレスになりますが
    コメントを読ませていただいて、若干試しつつ、ますます混乱してきました。

    で、最初から順を追って書きます。
    ちなみにWinは10で桐はV9ですが、batは手書きなので(桐の印字でではない)桐で読み込む前段での話です。

    (1)dir ICD*.csv >> dir.txt
    「>>」(追加)としたのは、ちょっとした勘違いですが、これだと化けませんでした。
    文字コードは多分シフトJISだったと思う。
    「>」と「>>」で挙動が違うことはないように思います。
    ただこれだとボリュームラベルが云々・・とかタイムスタンプやサイズ等の表示が邪魔なので、
    次に

    (2)dir ICD*.csv /b > dir.txt
    としてシンプルにファイル名だけを取得しようと思いました。
    そしたらフェイル名に含まれる全ての漢字が見事に化けました。特定の漢字ではなく。
    文字コードは(WZエディタで確認したところ)UFT-8。

    (3)hidetakeさん例示の
    cmd.exe /u /c dir *.csv /s > unicode.txt
    では化けずに、Unicode(BOMなし)で出来上がりました。
    次いで
    cmd.exe /a /c dir *.csv /s > ansi.txt
    でも化けずに、シフトJISで出来上がりました。
    ですが、
    これらの場合 /b スイッチが利かず、ボリュームラベルが云々・・・はどうしても残ります。
    (/cスイッチを抜いたらエラー?)

    さらにもうひとつ不思議なことが!?
    (4)dir ICD*.csv /b > dir試.txt
    としてみたら、化けずにシフトJISで出来上がるではありませんか!!
    発端は比較するために生成ファイル名を区別する目的で、ファイル名にたまたま漢字を入れただけ。
    batの中身は化けた(2)と同じなのに。
    ファイル名で生成テキストの文字コードを自動判断????

    で、現在メタパニ(ってわかるかな?)混乱中という次第です。
    ま、(4)で対処できるんなら簡単、ラッキーとも言えるような・・・。

    ps.
    このツリーは暫く見ますが、自分は来週入院するので中断するかも。

引用返信 [メール受信/OFF] 削除キー/
■10335 / inTopicNo.9)  Re[8]: 文字コード関連
□投稿者/ hidetake -(2017/02/03(Fri) 09:19:59)
    > (3)hidetakeさん例示の
    > cmd.exe /u /c dir *.csv /s > unicode.txt
    > では化けずに、Unicode(BOMなし)で出来上がりました。
    > 次いで
    > cmd.exe /a /c dir *.csv /s > ansi.txt
    > でも化けずに、シフトJISで出来上がりました。
    > ですが、
    > これらの場合 /b スイッチが利かず、ボリュームラベルが云々・・・はどうしても残ります。
    > (/cスイッチを抜いたらエラー?)

    cmd.exe /a /c dir *.csv /b > ansi.txt

    できませんか?
引用返信 [メール受信/OFF] 削除キー/
■10341 / inTopicNo.10)  Re[8]: 文字コード関連
□投稿者/ うにん -(2017/02/03(Fri) 20:47:59)

    > さらにもうひとつ不思議なことが!?
    > (4)dir ICD*.csv /b > dir試.txt
    > としてみたら、化けずにシフトJISで出来上がるではありませんか!!
    > 発端は比較するために生成ファイル名を区別する目的で、ファイル名にたまたま漢字を入れただけ。
    > batの中身は化けた(2)と同じなのに。
    > ファイル名で生成テキストの文字コードを自動判断????

    batの中身に漢字などがないとbatファイルの文字コードが判別できないからでは?
引用返信 [メール受信/OFF] 削除キー/
■10342 / inTopicNo.11)  Re[9]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/03(Fri) 22:56:39)
    No10335に返信(hidetakeさんの記事)

    > cmd.exe /a /c dir *.csv /b > ansi.txt
    >
    > できませんか?

    できました。
    混乱して/bスイッチを書く場所を間違えていたようです(^^;)
引用返信 [メール受信/OFF] 削除キー/
■10343 / inTopicNo.12)  Re[9]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/03(Fri) 22:58:50)
    No10341に返信(うにんさんの記事)

    > batの中身に漢字などがないとbatファイルの文字コードが判別できないからでは?

    そうなんでしょうね。
引用返信 [メール受信/OFF] 削除キー/
■10344 / inTopicNo.13)  Re[1]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/03(Fri) 23:00:10)
    「解決済み」チェックを忘れました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■10345 / inTopicNo.14)  Re[7]: 文字コード関連
□投稿者/ hidetake -(2017/02/04(Sat) 08:33:11)
    > cmd.exe /u /c dir *.csv /s > unicode.txt
    > と、実行すると unicodeなファイルが出力される
    >
    > cmd.exe /a /c dir *.csv /s > ansi.txt
    > と、実行すると ansi(Shift_JIS)なファイルが出力される

    ちなみに

    UTF-8 な出力ファイルが欲しい場合は

    chcp 65001
    して、
    dir *.csv /s > utf8.txt
    と、する必要がありますね!!

引用返信 [メール受信/OFF] 削除キー/
■10346 / inTopicNo.15)  Re[8]: 文字コード関連
□投稿者/ 悲しげ -(2017/02/04(Sat) 21:10:49)
    No10345に返信(hidetakeさんの記事)
    >chcp 65001
    なんて初めて見ました。(゚O゚)
    たかが文字コードと言っても、なかなかあるんですねぇ。

    unicodeでテキスト化したデータは桐9以前だと読み込みがだめみたいだし、
    Winのバージョンも異なる幾つかの店舗で、桐9で当分使うことを考えると、
    ここはやはりシフトJIS指定で統一処理した方がいいと思うに至りました。
    で、batはいちいち
      cmd.exe /a /c dir *.csv /b > 某.txt
    とすることにします。

    *

    余談ながら、以前話題になった、桐9インストール時の「cmd」も桐に関連付け
    しないようにしつつあります。
    一括処理cmdの実行は、ショートカットのプロパティをいじくるまでもなく、
    cmd実行用のみのwfmで代用する(起動時実行ボタンの中身が「開く ○○.cmd」
    だけ)。こちらから、そのwfmをメール添付で送るだけだから簡単。

    と言う訳で、毎度ありがとうございました。

引用返信 [メール受信/OFF] 削除キー/
■10347 / inTopicNo.16)  Re[8]: 文字コード関連
□投稿者/ hidetake -(2017/02/05(Sun) 17:16:55)
    > ちなみに
    >
    > UTF-8 な出力ファイルが欲しい場合は
    >
    > chcp 65001
    > して、
    > dir *.csv /s > utf8.txt
    > と、する必要がありますね!!


    おもしろい!!

    chcp 50220
    すると、コンソール出力は半角カナのままだけれど
    ファイルにリダイレクトすると、半角カナは全角カナ
    に変換され出力される。
    ※ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) iso-2022-jp

    chcp 50222
    も有効で SI/SO されたファイルとなる
    ※ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) iso-2022-jp

    そのほか
    20932 Japanese (JIS 0208-1990 and 0121-1990) ※EUC-JP
    65000 Unicode (UTF-7)
    65001 Unicode (UTF-8)
    も、有効なようだ!!

    当然
    20127 US-ASCII (7-bit)
    にしたら化ける

    でも、何故に
    1200 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
    12000 Unicode UTF-32, little endian byte order; available only to managed applications
    12001 Unicode UTF-32, big endian byte order; available only to managed applications
    が、通らないのだろう!?

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -