X



nkfってなんだ
0001名無しさん@お腹いっぱい。
垢版 |
NGNG
初心者です。ご指導おねがいします。
0175成瀬 ◆NBGqNARUSE
垢版 |
2006/03/13(月) 15:01:02
別名の案を考えるのにフィルタ系のコマンドを一通り調べてみたのですが、
* 相当するコマンドが無い
* デフォルトが上書き
がそもそも大多数で、わたしが見つけられたのはPerl/Rubyの-i[=extension]くらいでした。
sedは見たのですが、GNU sedには-i/--in-placeがあるのですか。
--overwriteを用いているのはnkfくらいのようですね。

-iは既存のオプションと衝突しているため使えないとして、
--in-placeを更新するoverwriteにするというのはありだと思います。
というか、--in-place[=SUFFIX] の拡張子を指定してバックアップはわたしも欲しいので、
この方向で実装してみます。

上書きを行うロングオプションで--in-place以上に有名なものってありませんよね?
なるべく長いものに巻かれておきたいのですけれど。
0176成瀬 ◆NBGqNARUSE
垢版 |
2006/03/21(火) 22:55:47
2.0.6 beta1 を出しました。
http://sourceforge.jp/projects/nkf/

ところで、今 nkf は -m がデフォルトで有効になっています。
これを、デフォルトで -m0 にしたいと思っているのですが、どう思います?
一応、コンパイルオプションでデフォルト -m / -m0 を切り替えられるようにして、
お茶を濁しつつ変えてしまおうかとも思っているのですけれど。

ちなみに、同様に意図しない変換を引き起こしうる、デフォルトが -X な件は、
--ic / --oc ではデフォルトで -x を含むようにしています。
0177名無しさん@お腹いっぱい。
垢版 |
2006/06/03(土) 16:36:10
SJISで全角'−'記号の0x817CをUTF-8Nの0xEFBC8Dに変換する
オプションを教えて欲しい。
普通にC:\>nkf -S -w test.sjs > test.utf8nとかしても
0xE28892に変換され、他のソフトに読み込むときうまく
読み込まれず苦労しています。
TeraPadで読み込んでUTF-8Nで変換すると0xEFBC8Dに変換されます。
あと、全角の'¥'記号が半角の'\'記号になってしまうのも。
0180177
垢版 |
2006/06/04(日) 17:35:32
nkfのVersionはたしか2.07betaだと思う。
Vectorでダウンロードしたやつで、
色んなVersionが同梱されていました。
因みにiconvってWindowsで使えるの?
0181名無しさん@お腹いっぱい。
垢版 |
2006/06/04(日) 20:39:13
それだとあなたの言う動作になっているね。
2.0の頃は¥のままだったんだけど。

iconvはcygwinに入っているよ。
0183177
垢版 |
2006/06/05(月) 08:47:49
>>182
nkf -S -w --cp932 infile.sjis > outfile.utf
で望の結果となりました。アリガトウゴザイマス。
0184名無しさん@お腹いっぱい。
垢版 |
2006/06/05(月) 09:15:25
>>137
今更ながらだが、kccのコードを弄って簡易spamフィルタに使ってるぞ。
Subjectに、8ビット文字入れてくる汚物メールを検出するフィルタ。

nkfだとコードがでかすぎて弄れぬ。
0185成瀬 ◆NBGqNARUSE
垢版 |
2006/06/16(金) 03:28:54
今更だけどフォロー
>>177 >>183
現在の nkf はデフォルトでは ASCII の範囲はそのまま、
それ以外はJISのマッピングに準拠したマッピングにしています。
Windows の変換と同じ変換、すなわち CP932 互換の変換をしたい場合は、
--cp932 で行うことができます。
なお 2.0.6 では nkf --ic=CP932 --oc=UTF-8 と、iconv っぽく使えます。

>>179 >>180
行う変換がどのマッピングなのか把握しているならば iconv が適当です。
Windows なら香り屋さんのが楽 http://www.kaoriya.net/#LIBICONV

>>184
*_getc -> kanji_convert -> *_iconv -> *_conv -> *_oconv -> *_putc
という流れを把握すれば、多少はいじるのが楽になるかも。
グローバル変数の嵐ですけどね・・・。

> Subjectに、8ビット文字入れてくる汚物メールを検出するフィルタ。
ならば、*_getc の追加でいけるかな。
grep -E '[^[:cntrl:][:print:]]' で済みそうだけど。
0187186
垢版 |
2006/12/08(金) 03:00:07
俺はバカだ。ここはUNIX板じゃないか(泣
(ちなみに俺の今の -> "nkf2PDI3")
0189名無しさん@お腹いっぱい。
垢版 |
2007/01/19(金) 11:03:37
バグでしょか? 2.0.7 と CVS 先端で再現します。

1. MIME デコードしたりしなかったりする

% nkf -e
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
% nkf -e
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
こんにちは あ

2. UTF-8 だと MIME デコード部分が化ける

% nkf -w
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
あいうえお $"
% nkf -w
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
0191189
垢版 |
2007/01/19(金) 13:37:09
>>190
>>190 さんは MIME のオプション指定で再現しなくなりましたか?

NKF 1.9以降は MIME のオプション (-m) はデフォルトで有効になっていると思います。
試しにそれぞれに -m オプションを付けてみましたが、同じ出力結果となりました。
0194成瀬 ◆NBGqNARUSE
垢版 |
2007/01/21(日) 07:32:24
とりあえず現状を。
1. エンコーディングの確定前にMIME文字列が出現した場合認識しない
2. 一部のエンコーディングでMIME encodeされたJISな文字列が文字化け
の二つの問題と認識しています。
後者は手元で修正しました。
前者は現在ちとてこずっています。
回避方法としては、エンコーディングがわかる場合は明示的に指定する、になります。
0195189
垢版 |
2007/01/21(日) 14:59:59
前者の方ですが、確かに入力のエンコーディングを指定したらうまくいきました。
自動判定が絡んでくるとなると厄介そうなのはなんとなく想像つきますので、
あまり期待しないで期待しておきます(?)。
対応ありがとうございます。
0196189
垢版 |
2007/01/30(火) 16:59:22
CVS 先端で後者の方が直っていました。ありがとうございました。
0197名無しさん@お腹いっぱい。
垢版 |
2007/11/17(土) 12:16:02
>>191
> NKF 1.9以降は MIME のオプション (-m) はデフォルトで有効になっていると思います。

まじかよ
なんだよ、このウンコ仕様は。
さよなら、nkf。
0198成瀬 ◆NBGqNARUSE
垢版 |
2007/11/18(日) 06:47:45
>>197
わたしも微妙な仕様で正直変えたいと思っているのですが、
調べたところどうも1.7あたりから導入されているらしく、
いまさらそう簡単には変えられないというのが現状です。

っと思っていたのですが、Ruby1.9にあわせてnkfを2.1にし、
そこでこの手の変えづらかった仕様に手を入れてしまうのもありな気がしてきました。
少し検討してみます。
0199197
垢版 |
2007/11/18(日) 12:20:20
真面目なレスありがとう。
過去のnkf利用scriptが走馬灯のように思い浮かんで欝になりました。

-Xがdefaultである件も、前から何だかなーと思ってます。
出力がISO-2022-JPの場合は仕方ないんだけど。
0200成瀬 ◆NBGqNARUSE
垢版 |
2007/11/19(月) 17:11:54
>>199
とりあえずMIME decodeの方はconfig.hに
#define MIME_DECODE_DEFAULT FALSE
とでも書いてmakeすればデフォルト無効になります。

-Xの方はソース眺めていて-Iとの絡みが謎なので解読中。
似た方法でデフォルトを変えられるようにする方向です。

あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。
0201名無しさん@お腹いっぱい。
垢版 |
2007/11/19(月) 22:12:40
>>200
> あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。

あ、それあると嬉しい。
man あたりに "DEFAULT FLAGS" みたいなエントリ作れば良いのでは?

--help やって気付いたけど、標準エラー出力に投げるんだね。
これはソース見てすぐにどこいじれば標準出力に変更できるか分かったけど。
0202名無しさん@お腹いっぱい。
垢版 |
2007/11/20(火) 03:03:24
>>201
>> あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。
>あ、それあると嬉しい。
>man あたりに "DEFAULT FLAGS" みたいなエントリ作れば良いのでは?
コンパイルオプションは最終的にconfigureで設定できるようにする予定なのですが、
こっちはNKF.pmのコンパイルが微妙になることに気づいてどうしようかなとか。
ていうか、Encode.pmが標準添付なこの時代にNKF.pmとか使う人いるんだろうか。
# Encodeをたたくラッパーでいい気がするよね。

>--help やって気付いたけど、標準エラー出力に投げるんだね。
ですね、以前に微妙かと思って手元にあったコマンドがどこにヘルプ投げるか調べたら、
どっちもあったんですが、標準出力の方がいいですか?
0203名無しさん@お腹いっぱい。
垢版 |
2007/11/21(水) 00:17:27
>>202
>>--help やって気付いたけど、標準エラー出力に投げるんだね。
> ですね、以前に微妙かと思って手元にあったコマンドがどこにヘルプ投げるか調べたら、
> どっちもあったんですが、標準出力の方がいいですか?

量が多い時にページャに渡すときに一手間増えるかなと。
といっても 2>&1 を追加するだけなんで、あまり気にしなくておk。
0204名無しさん@お腹いっぱい。
垢版 |
2007/11/21(水) 17:17:45
デフォールト・オプション大変りなnkfは、nkf3として、
/usr/bin/nkf
/usr/bin/nkf3
が共存できるようにするとか。

Debian的には、
/usr/bin/nkf2
/usr/bin/nkf3
/usr/bin/nkf→/etc/alternatives/nkf→/usr/bin/nkf2
/usr/share/man/man1/nkf.1→/etc/alternatives/nkf.1→/usr/share/man/man1/nkf2.1
な感じ。update-alternatives --set nkf /usr/bin/nkf3で切り替え。
0205名無しさん@お腹いっぱい。
垢版 |
2007/11/22(木) 14:10:01
nkf3 って名前で install するのは .deb のパッケージシステムで
(すまん俺 .rpm なシステムしか知らん)やる事じゃまいか?

問題になるようなら他のシステム(portsとか)でも多分そうすると思う。

コンフィグorメイクのオプションで設定可能にするのは構わないと
思うがデフォルトを nkf3 にするのはどうかと。
0206名無しさん@お腹いっぱい。
垢版 |
2007/11/23(金) 01:00:12
debianだと、たとえ本家がnkf-2.1だろうと、
メインテナが互換性上別にした方がいいと考えたらnkf3_2.1になる。
だから気にしないでいい。
0207成瀬 ◆NBGqNARUSE
垢版 |
2007/12/07(金) 13:25:21
とりあえず config.h で -m と -x のデフォルトを変えられるようにしました。
#define MIME_DECODE_DEFAULT 0
#define X0201_DEFAULT 0
で -m0 -x を指定しているのと同じ状態になります。

また、nkf -V でコンパイルオプションを表示するようにしました。
Summary of my nkf 2.0.8 (2007-12-07) configuration:
Compile-time options:
Default output encoding: ISO-2022-JP
Decode MIME encoded string: OFF
Convert JIS X 0201 Katakana: OFF
例えばこんな感じ。

なお、この修正に伴い -x 関連のコードを整理した影響で、-I -x の動作に変更があります。
旧来 -I -x では半角カタカナの入力に対して、半角カタカナを出力していましたが、
これからはゲタを返すようになります。
0208201
垢版 |
2007/12/16(日) 17:44:56
>>207
> また、nkf -V でコンパイルオプションを表示するようにしました。
GJ。
と言いたいところなんだが、手元でコンパイルして表示してみたら
Default output encoding: と下の二行の表示位置が空白一個分
ずれてるよ。

$ diff nkf.c.orig nkf.c
6183c6183
< fprintf(stderr, "(空白4個)Default output encoding:(空白6個)"
---
> fprintf(stderr, "(空白4個)Default output encoding:(空白5個)"
0210名無しさん@お腹いっぱい。
垢版 |
2007/12/30(日) 01:49:03
nkfを次の様に使ってますが稀に文字化けします、文字化けしないような使い方がありますか?
mplayer ファイル名 | nkf -wu
文字化けの例
ファイル名は05.バレエ組曲「くるみ割り人形」アラビアの踊り.mp3


Failed to open LIRC support. You will not be able to use your remote control.
Playing 05.繝舌Ξ繧ィ邨峇縲後\繧九∩蜑イ繧贋ココ蠖「縲阪い繝ゥ繝薙い縺ョ雕翫j.mp3.
Audio file file format detected.
Clip info:
Title: チャイコフスキー バレエ組曲「
Artist: トスカニーニ指揮 NBC交響楽


ロケールはutf8でID3タグがsjisです
0211201
垢版 |
2007/12/30(日) 02:00:38
>>210
元ファイル名の文字コードが SJIS 固定と決まっているのなら

nkf -Swu
0213成瀬 ◆NBGqNARUSE
垢版 |
2007/12/30(日) 17:15:04
nkf は行ごとに文字コードを判定することもあったようなその部分は壊したような、

とりあえず、ID3タグのみがShift_JIS (たぶんCP932)なのですから、そこだけ変換するべきでしょう。
mplayer | ruby -nrnkf -e'puts /^(Title|Artist)/=~$_ ? NKF.nkf("-w --ic=cp932",$_) : $_'
これだとバッファ周りがだめそうですが
0214210
垢版 |
2007/12/31(月) 01:36:18
ありがとうございます

rubyさっぱりわからないですが試してみました
ファイル名は変換されますがID3タグが化けます、
それよりも秒数がまとめて出力されてしまう
Title: `CRtXL[ o
Gg
ネu
Artist: gXJj[jw
mab
?
ソ
y
Album: o
Gg
ネuュ鰡

`v
ファイル名が"05.バレエ組曲「くるみ割り人形」 アラビアの踊り.mp3"なら
-wu で認識してくれるのだけど
0215成瀬 ◆NBGqNARUSE
垢版 |
2007/12/31(月) 17:59:12
あー、秒数とかがダメか。
てっとり早い解決策は、ID3タグをID3v2 (Unicode)に変換することじゃないかなぁ。
一括変換できるソフトはSTEPくらいしか知りませんが。
http://hp.vector.co.jp/authors/VA012911/

それ以外だとファイル名が化けるのはあきらめて nkf -uwS とかかな。

結局のところ出力がUTF-8の行とShift_JISの行が混在しているのが問題なので、
そろえてしまわないと解決は面倒になります。
0216210
垢版 |
2008/01/06(日) 21:14:58
ID3タグをUnicodeにすることも考えましたが
そうすると他の機器で文字化けが、、、
mplayerでファイル名が化けることはそんなにないので
当面このままでいきます、ありがとう
0217成瀬 ◆NBGqNARUSE
垢版 |
2008/01/21(月) 17:12:26
先日デフォルトの出力エンコーディングを指定できるようにしたわけですが、
よくよく考えればロケール見て決めてくれよと思いつく。。。
0218名無しさん@お腹いっぱい。
垢版 |
2008/01/24(木) 02:29:18
>>217
端末の locale 見て自動変換してくれると便利だよね。

Ruby でその機能が欲しくて NKF 使ってライブラリ作ったけど
1.9 で動くか試してないや。
0219名無しさん@お腹いっぱい。
垢版 |
2008/01/24(木) 11:16:16
うーん。locale見るのはUIのレイヤでやってほしいかなぁ
内部のエンジンがそういう暗黙の挙動をするのは嬉しくないかも
0220名無しさん@お腹いっぱい。
垢版 |
2008/01/24(木) 15:08:10
>>218
Ruby 1.9 だと Encoding.locale_charmap がエンコーディング名とか、
Encoding.default_external がエンコーディングオブジェクトとかありますが、
Kconv に tolocale とこっそりつっこんだので、これ使うと楽です。

>>219
> うーん。locale見るのはUIのレイヤでやってほしいかなぁ
> 内部のエンジンがそういう暗黙の挙動をするのは嬉しくないかも
基本的には nkf コマンドの UI 部の機能という見解ですが、ライブラリとしての話でしょうか。
その場合は出力エンコーディングを指定してよという話になるわけですが。
ちなみに、今まではなにもいじらなければ JIS がデフォルトだったのでそれってどうよ、だったと。
0222成瀬 ◆NBGqNARUSE
垢版 |
2008/01/24(木) 21:32:52
Ruby 拡張ライブラリだとどうしましょうかね。
* 今まで通りデフォルト JIS
* いやいや時代は UTF-8
* 自力でロケールはないとして、
* Encoding.locale_charmap
* Encoding.default_external
* 指定しないとエラー
0223名無しさん@お腹いっぱい。
垢版 |
2008/01/25(金) 02:42:31
>>220
Kconv#tolocale ね。 それは便利そうだ。

>>222
NKF#nkf の挙動の話だよね?
個人的には Kconv#tolocale があるんだし、
NKF は処理速度重視であって欲しいかな。

どれが一番速いのかは分からないけど。
0224名無しさん@お腹いっぱい。
垢版 |
2008/01/25(金) 11:22:34
nkfを使うということをプログラマが選択した時点で、
コード変換に注意を向けているわけですから、指定しないとエラー、
がいいんじゃないですかねぇ。

こっちじゃ動いたけどあっちじゃ動かない、系のトラブルも
回避できますし。
0226成瀬 ◆NBGqNARUSE
垢版 |
2008/03/01(土) 21:43:27
nkf 単体でやる方法はありませんね。
常にファイル名表示ーするとたぶん問題なんだろうなぁ。
0229名無しさん@お腹いっぱい。
垢版 |
2008/04/12(土) 02:41:18
フォルダー内のテキストやHtmlを一括で漢字エンコードするソフトを教えて下さいと2chで頼んだら
こちらのソフトを教えていただきました
下記アドレスを見たんですけど使い方がさっぱりわかりません
ttp://sourceforge.jp/projects/nkf/document/nkf-man-2_0_6-ja/ja/4/nkf-man-2_0_6-ja.txt

このツールで大量のテキストのエンコードを一括変換させるにはどのようにすればいいのでしょうか?
Windows xp
フォルダー内にはEUCのものとUTF-8のものとがあります
これらのファイルを一括でS-JISに変更させる方法を教えて下さい
オプションの説明ばかりでもしかして1ファイルづつの操作なのでしょうか?
一括変換の方法も書いてあるのかもしれないけど
疲れて最後までよめませんでした
どなたかわかるかたお願いします
0231名無しさん@お腹いっぱい。
垢版 |
2008/04/12(土) 03:37:34
>>230
えっそうなんですか
もうひとつ漢字とらんさーというツールも教えてもらったんだけど
フォルダーごとエンコードしてみたら2割くらいはバイナリかもしれないと
エンコード出来なかった表示がでてきた
それでファイルを1枚づつ確認してみたら
見事に1枚もエンコード変換できていませんでした
nkfに期待してるのですが
使い方わかんないよ
レスありがと
気が向いたら使用方法教えて下さいね
おやすみ
0232名無しさん@お腹いっぱい。
垢版 |
2008/04/12(土) 03:50:01
nkfの自動判別使った奴があるから探して使いなよ。

nkfでやりたかったら、↓のシェルスクリプト使いな。

#! /bin/sh
for i in "$@"; do
mv "$i" "$i.org"
nkf -s "$i.org" > "$i"
done

けどツール探した方が速いと思うよ、あなたの場合。
0233名無しさん@お腹いっぱい。
垢版 |
2008/04/12(土) 04:16:15
>>232さん
お疲れのところ本当にありがとうございます
>>232さんがおっしゃるとおり
簡単操作のツールでなければ使えないかもしれないです^^;
でもせっかく教えてくれたスクリプトなので頑張ってみます
ありがとうございました
おやすみなさい^^
0234名無しさん@お腹いっぱい。
垢版 |
2008/08/28(木) 02:12:18
最近 nkf のリリース無いね。
SourceForge 見る限りではメンテはされているみたいだけど。
そろそろ 2.0.9 とかが出てもいい頃だと思うんだけど。
0236名無しさん@お腹いっぱい。
垢版 |
2008/11/05(水) 21:10:48
>>234
Rubyの方で忙しいもので。
まぁ、さすがに放置が過ぎるので、Ruby1.9.1リリースあたりのタイミングで、
Ruby添付と同じものをリリース版として置こうかなと思ってます。
0237名無しさん@お腹いっぱい。
垢版 |
2009/01/22(木) 04:32:00
というわけで nkf 2.0.9 を出しました。
Perl モジュール部分が壊れていたので、Perl で使い方は Git から最新版を落としてくださいまし
0241名無しさん@お腹いっぱい。
垢版 |
2009/02/21(土) 15:20:23
>>238
まぁ、Ruby寄り・・・というか、Rubyも組み込み変換があるのでコマンドがメインかな。
というか、PerlならEncodeがあるじゃないですか。

>>239
Ruby 1.9.1の最初のパッチリリースが出る頃には出そうかなと。
っと、バージョンナンバー二桁にして大丈夫なのかな?
だめそうなら2.1.0にしてしまうのでお早めに。

>>240
commit a6a715f3686cb70d38c6616c8e03830ef34d9478
にて修正しました
0242名無しさん@お腹いっぱい。
垢版 |
2009/03/18(水) 18:53:38
DLL だと、判定は UTF-16 になるのに lpBytesReturned に 0 が返ってきます。。。

HINSTANCE dll = ::LoadLibrary("nkf32.dll");
funcSetNkfOption *setopt = (funcSetNkfOption *) ::GetProcAddress(dll, "SetNkfOption");
funcNkfConvertSafe *conv = (funcNkfConvertSafe *) ::GetProcAddress(dll, "NkfConvertSafe");
funcNkfGetKanjiCode *getkc = (funcNkfGetKanjiCode *) ::GetProcAddress(dll, "NkfGetKanjiCode");
setopt("-xs");
conv(out, sizeof(out), &bytesReturned, in, sizeof(in));
int charcode = getkc();
::FreeLibrary(dll);
printf("%d %d %s\n", charcode, bytesReturned, out);

2.0.8 だと「4 6 UTF-16」みたいになるのに、2.0.9 だと「4 0」。
git は確認してないけど、>>241 で解決してるのかなぁ
0244名無しさん@お腹いっぱい。
垢版 |
2009/08/21(金) 12:01:49
NKF 2.0.9 のマニュアルの --ic, --oc の CP932 の説明には、
「-x が暗黙のうちに指定される」と書かれていますが、
これが実際には効いていないように思います。

nkf コマンドの 2.0.8 が手元に無くなっちゃったので Ruby での比較になりますが、
2.0.8 → 2.0.9 で挙動が変わってしまっており、
2.0.8 ではマニュアルの通りに動作していたように見えます。


% ruby -rnkf -e 'puts NKF::VERSION; puts NKF.nkf("--ic=CP932 --oc=UTF-8", File.read("hello"))'
2.0.8 (2008-11-08)
コンニチハ

% ruby_trunk -rnkf -e 'puts NKF::VERSION; puts NKF.nkf("--ic=CP932 --oc=UTF-8", File.read("hello"))'
2.0.9 (2009-01-20)
コンニチハ
0245名無しさん@お腹いっぱい。
垢版 |
2009/09/02(水) 20:15:12
>>242
手元にDLL用の環境がないので確認できてないんですが、今でもそうなりますかね。
しばらく大きな更新の予定もないので、ここらで2.1.0でも出そうかと思いつ。

>>243
要望があれば検討しますよ、というわけでそのうちには。
Ruby/transcode じゃなくて nkf に欲しいんですよね?

>>244
これはバグですね、直します。
0246名無しさん@お腹いっぱい。
垢版 |
2009/09/03(木) 00:23:30
そうですね、 Ruby/transcode にも要る
(現状だと net/imap などは自前で実装してますね) と思いますが、
nkf にも欲しいところです。
0250名無しさん@お腹いっぱい。
垢版 |
2009/12/29(火) 17:24:35
64bit版てあるのかな?
0253efialtes
垢版 |
2010/02/14(日) 21:37:04
skf にそういう機能はないです。nkf の方は対応したことになっているらしいんですけど、もともとロカールからエンコーディングを抽出するのは POSIX 仕様上困難なので、なにか上手い方法が見つかったら考えます。
0254名無しさん@お腹いっぱい。
垢版 |
2010/05/23(日) 12:34:07
nkfで2ch内のスレタイ検索してここに来ました。(ここだけでした)
ウインドウズ環境でnkf32.exeを使ってみた(nkf32.exe -w16L --overwrite)の
ですが、全角の―(ダッシュ)がハイフンだかマイナスだかに変わってしまいます!
これは滅茶苦茶困ります。もう泣きそうです。
誰に言えばいいのか分からないからここに書きます、何とかしてください!!
0256名無しさん@お腹いっぱい。
垢版 |
2010/05/23(日) 15:18:36
>>255
ぎゃー、上手くいきました!
嬉しいです、どうもありがとう。
ショックで良く調べもせず騒いですみませんでした。
本当にありがとう!
0261名無しさん@お腹いっぱい。
垢版 |
2010/06/10(木) 11:55:58
> echo 60_byte_ijou_no_ascii_dake_no_mojiretsu_de_-M_shitemiru_test_ | nkf -M
=?EUC-JP?B?60_byte_ijou_no_ascii_dake_no_mojiretsu_de_-M_shitemiru_test_?=
0263名無しさん@お腹いっぱい。
垢版 |
2010/06/28(月) 22:38:56
nkf.exeの64bitOSに対応したバージョンって、ないでしょうか?

XP-32bitからWin7-64bitに移行したところ、

[サポートされていない16ビットアプリケーション]

と出て、とまってしまいます。バッチで組み込んで使っているnkf.exeが唯一、
起動しないアプリになってしまいました。

コマンドラインから

c:\>コマンド名.exe 入力ファイル 出力ファイル

という手順(順番やオプションは不問)で呼び出しができて、
変換さえできれば、別のソフトでも全くかまいません。

なにか打開策ないでしょうか。
0267名無しさん@お腹いっぱい。
垢版 |
2010/06/29(火) 14:44:25
Windowsの文字コードだと、変換できないことが多々あるな・・・。
ファイル名とか。

仕方ないので、find -inum -exec mvで変更してるけど
なんか別の方法はないんだろうか。
0268名無しさん@お腹いっぱい。
垢版 |
2010/07/07(水) 22:11:55
mimeエンコードすると、行末の方だけ US-ASCII に成るのは、こういう仕様なんですかね。

$ echo 'aiueo kakikukeko さしすせそたちつてと naninuneno' | nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIg?=
 =?US-ASCII?Q?naninuneno?=
$ nkf --version
Network Kanji Filter Version 2.1.0 (2009-11-17)

ちなみにもう少し古い 2.0.9 とかも同様。
0271名無しさん@そうだ選挙に行こう
垢版 |
2010/07/10(土) 23:29:25
>>270
お返事ありがとうございます。
改行を入れると、改行を除去されたり、増えるのも同様にこういう仕様でしょうか。

$ echo -e 'aiueo kakikukeko\n さしすせそたちつてと\n naninuneno' | nkf -Mj
aiueo kakikukeko
 =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
$ echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEI=?=

  naninuneno
$
0272名無しさん@お腹いっぱい。
垢版 |
2010/07/13(火) 13:52:44
>>271
% echo -e 'aiueo kakikukeko\n さしすせそたちつてと\n naninuneno' | ./nkf -Mj
aiueo kakikukeko
=?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
% echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | ./nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
HEAD だと再現しないので、昔あったバグだと思います。
なお、改行が消えてるように見えますが、encoded-word の中にちゃんと入っています。
こうしないと「\n SP」は保存できないのです。
0273名無しさん@お腹いっぱい。
垢版 |
2010/07/14(水) 23:50:28
>>272
お返事ありがとうございます。
$ echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | nkf -Mj
の例がVersion 2.1.1 (2010-04-28) で以下となることを確認しました。
> aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
が、個人的には下を想像していたので、改行のエンコードが意外でした。
> aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEI=?=
>  naninuneno

nkf-2.1.0.tar.gzが最新と思っていましたが、リポジトリの方は2.1.1に改版されていたんですね。
0274名無しさん@お腹いっぱい。
垢版 |
2010/07/19(月) 15:38:09
下をデコードしてみるとダメな理由がわかるかと思います。
このあたり MIME encode って難しいんですよねぇ。

リポジトリ内のバージョンはリリース後の次のコミットで上がります。
ちなみに、2.1.1 は Ruby 1.9.2 がリリースされるころに出ます。
レスを投稿する


ニューススポーツなんでも実況