[PHP] ターミナルで 大容量 テキスト派である エンコード 変換すること
一応 急な 方々を のために 変換用 コードだけ ところで 差し上げる. 詳細な 説明は 変換用 コード 下側を 見れば ある.
$filename
項目に ターゲット ファイル名を 少なくて 与えれば なる. それでは 変換された ファイルは 現在 original-filename(to-encoding).txt
路 保存される.
文書 変換用が なく DB インソトムン 変換用で 作った ことで 文書 変換用では 相応しいでしょう ない 数 ある. ファイルを 自動で 掻いて 来る のも なくて 言葉だ. 実行は ターミナルで する. ウィンドウなら cmd
で すれば なって. 上 コードを iconv.php
路 保存した 後,
php iconv.php from-encoding to-encoding filename
こういう 式で 行えば なる. もし php
街 何やら 分からないと 出れば php
ファイルが ある 経路まで だ 少なくて 与えれば なる.
C:\APM_Setup\Server\PHP5\php.exe iconv.php euc-jp utf-8 test.md
こういう 式で すれば なる. 勿論 ターゲット ファイルと iconv.php
街 ような フォルダに あると する.
詳細な ストーリー
phpMyAdmin
で MySQL DB
を ダウンしたが, 載せるように エンコードが euc-kr
路 なって あった. 私が インポートしようとする DB
増えた utf-8
引き継いだ だから ファイル エンコードを euc-kr
と 選択を たいてい 後 インポートを した. はなはだしくは phpMyAdmin義 インポートする ファイルの エンコードを 選ぶ オプションに euc-kr
これ なくて phpMyAdmin義 コア ファイルを 修正するまで した. ところが 今度は 1136番目 竝びに 間違いが あると 浮かんだ. コラムと 入力する 値段の 個数が 当たるの ないという ことだ. なにいってんの phpMyAdmin
で そのまま ダウンした キタイ ね! はなはだしくは 1136番目 竝びだって ;; エディタで 熱 首都 ない 用量 600メガの ファイルを どうしろという 言葉か.
iconv 関数の オプション
一応 ファイルを 分析すると したら ファイルの エンコードを 変更することに した. iconv 関数の 説明を 見たら 下と ような コードと 一緒に オプションを 説明して あった. 完全 分からなかった ことだ.
$text = "This is the Euro symbol ' '."; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
説明は 簡単だ. 一応 これ オプションは 円 エンコードには あって 変換する エンコードには ない 文字が ある 場合 どうに 割 のなのかを 指定して 与える オプションだ. もし こういう オプション なく エンコード 変換を 試みれば ノーティスを 浮かべながら 該当 文字 後からは 変換が なるの ない. 上 コードの 結果を 見れば 理解が なる ことだ.
Original : This is the Euro symbol ' '. TRANSLIT : This is the Euro symbol 'EUR'. IGNORE : This is the Euro symbol ''. Plain : Notice: iconv(): Detected an illegal character in input string in .iconv-example.php on line 7 This is the Euro symbol '
出力する エンコードの 後に //TRANSLIT
と 付ければ, 出力する エンコードに ない 文字である 場合 次第の 翻訳を 日 与える. これ 場合には EURO貨 表示を EUR
路 翻訳して エンコード 変換を した. 立派だ. //IGNORE
と 付ければ 該当 文字を 変換するの ない. もし 誰 オプションも 主旨 なかったら 該当 文字 後からは 文章 自体が 変換されるの ない.
そのため 初めには UTF-8//TRANSLIT
と 出力 エンコードを 設定した. そして 今 1136番目 竝びを 見ると するのに… ターミナルで 見る 方法が ある の ようだった.
大容量 テキスト ファイル, ターミナルで 特定 竝びだけ 表示
捜して 見たら やっぱり 命令語が あった.
head -1140 target.txt | tail -10
head -1140 ファイル名
命令語は 手始めから 1140番目 竝びまでに 出力しなさいという 話だ.
右に出た 少し 応用を 真書 命令語 構造が 他のところ tail -10 ファイル名
こんなに 使えば 終りで これから 10竝びだけ 出力しなさいという 話だ.
定木, 次 |
街 上 応用の 核心だ. |
増えた ターミナルで 使われる やつなのに ‘パイプ’と 読む. これ パイプは 前の head
命令語を 通じて 1140番目 竝びまで 出力した 内容を まるで ファイルである ように tail
命令語の 因子値で 越して 与える. そのため tail
命令語の 因子値は 省略された. -10
オプションだけ ある ことだ.
定木, head
命令語を 通じて 1140竝びの 仮想の ファイルが 生じた. そして これを tail
命令語で 後から 10竝びだけ 読みなさいと した. それでは? 1131番目 竝びから 1140竝びまでに 画面に 出力されるように なる のだ. ワウ‾ 素敵で!
糸口
ファイルを 出力して き帳面に 取り離して 見たら 糸口が 見えた. 一応 SQL
間違いが 出た 理由は SQL
義 入力値 本文に 下と ような 式の 文章が 含まれて あってからだった.
私は 私は 育って ''先生''これ なる んだ
どうする 仕事なのか 大きい 引用符が あると 割 席に 小さい 引用符 二 勝ちどき 入って行って あった のだ. そのため 今度には UTF-8
路 変換するの ない EUC-KR
ファイルを 出力させて 見た. ターミナルが UTF-8
路 なって あって ハングル 部分は ワングチァング 割れて 出ることは したが 近くに ある 特殊文字たちを 糸口で 真書 ような 部分に 代替 何か 文字が あった 浮かし 捜して 見た. やっぱり! “
という 文字が ''
路 翻訳された のだった. たぶん 標準的な “
これ なく 何か 変な “
を 使った みたいだ. (よく ハングルで 変な 特殊文字を 入れて 文書を 作成した 後 付けて入れるのを すれば あんな 場合が 生ずる 数 ある.)
それでは どうする 数 ない. いちいち 捜して 変える 首都 ないから, UTF-8//IGNORE
路 変換することに した. そうに 変換を したし, 結果は? 成功! phpMyAdmin
で インポートを したら よくだけ 入って行った.
多分 初めに phpMyAdmin
で インポートする ファイルの エンコードを EUC-KR
路 選択して 入れた 時 間違いが 発生した 理由は phpMyAdmin
で ファイルを 変換する 時 //TRANSLIT
オプションを 使うこと だからである の ようだ.
以上. phpMyAdmin
科 iconv
関数に 大海 勉強 たいてい 番(回) 寝る した.
- コメント機能はありません。コメントの代わりに[email protected]
にメールを送ってください。