nkf.exe nkf32.dll Windows用 ネットワーク用漢字コード変換フィルタ v2.0(2.0.9) --------------------------------------------------------------------------- From: ichikawa@flab.fujitsu.JUNET (Itaru Ichikawa) Newsgroups: fj.sources,fj.kanji Subject: Network Kanji Filter Date: 18 Aug 87 11:14:21 GMT PDSとして、Network Kanji Filter (NKF)のソースを投稿します。 --------------------------------------------------------------------------- http://sourceforge.jp/projects/nkf/ プロジェクト: nkf Network Kanji Filter ものすごく古い漢字コード変換プログラムであるnkfを、メンテナンスするプロジェクトです。 --------------------------------------------------------------------------- これはnkfのv2.0をVA007219がWindows用にコンパイルし、配布しているものです。 UTF-8, UTF-16の対応はv2.0からです。 nkfwin.zip 配布ファイルです。 readme.txt このファイルです。 ANK.TXT JIS英数カナコード表(8ビット)です。 KANJI.TXT JIS漢字コード表(シフトJIS)です。 kuten.txt JIS漢字コード区点表(ISO-2022-JP)です。 SJIS.TXT シフトJIS漢字コード表(シフトJIS)です。 unicode.txt UNICODE表(UTF-16 little endian BOMあり)です。 cp932.txt WindowsにおけるUNICODEの扱いに関する技術情報の補足です。 2090\ v2.0.9のWindows 95以降への移植です。 nkf.c 2.0.9 2009-01-20 2090\changes.txt v2.0.9の変更点です。 2090\release.txt v2.0.9のリリースノートです。 2090\nkf.txt マニュアル。nkf.docをシフトJISに変換したものです。 2090\win\usage.txt nkf --helpの実行結果です。 2090\win\nkf.exe nkf.exe v2.0.9です。 2090\win\nkfwin.exe nkfwin.exe v2.0.9です。 2090\SJIS\nkf32.exe nkf32.exe v2.0.9です。省略時の出力コードがShift_JISです。 2090\SJIS\nkfwin.exe nkfwin.exe v2.0.9です。省略時の出力コードがShift_JIS です。 2090\9x\nkf32.dll Windows 95,98,Me用nkf32.dll 2.0.9.0 0です。 2090\NT\nkf32.dll Windows NT,2000,XP用nkf32.dll 2.0.9.0 0です。 2090\api.txt nkf32.dllのAPIです。 2090\nkf.h nkf32.dllのインクルードファイルです。 NKFSRC.ZIP バイナリを作成するために必要なファイルです。 nkfwin.zipとは別に配布しています。 http://www.vector.co.jp/soft/win95/util/se295331.html NKFDOS.ZIP MS-DOS用配布ファイルです。 nkfwin.zipとは別に配布しています。 http://www.vector.co.jp/soft/dos/util/se295362.html --exec-in, --exec-out オプションは使えませb。 nkf.exeは「nkf Win32版」として配布されているnkf 1.7(nkf3217.lzh)に誤変換の 不具合があるためnkf v2.0をWindowsに移植したものです。 旧版はNKFSRC.ZIPのほうにあります。 exeの名称は必要に応じてnkf32.exe等に変更してください。 2072より省略時の出力コードがShift_JISとなるものをSJIS\nkf32.exeとして 追加しました。 使用例1 1.コマンドプロンプト(MS-DOSプロンプト)を開きます。 2.nkf.exe のあるディレクトリへ移ります。 cd "E:\TEMP\nkfwin\2090\WIN" e: 3.nkf オプション 入力ファイル名 >出力ファイル名 とします。 nkf -Sw "C:\Documents andSettings\xxx\My Documents\yyy\index.html" >"D:\ftp\index.html" この例ではオプションのSにより入力ファイル形式がShift_JISとみなします。 オプションのwにより出力形式をUTF-8にします。>により出力先を指定します。 使用例2 1.コマンドプロンプト(MS-DOSプロンプト)を開きます。 2.変換したいファイルのあるディレクトリへ移ります。 cd "D:\TEMP" d: 3.nkf オプション ファイル名 とします。 "E:\TEMP\nkfwin\2090\WIN\nkf.exe" -s --overwrite *.* この例ではオプションのsにより出力形式をShift_JISにします。 オプションの--overwriteによりファイルを上書きします。 *.*により現在のディレクトリの全ファイルを対象にします(サブディレクトリは Permission deniedのエラーになりますが害はありません)。 nkfwin.exeはコマンドプロンプト(MS-DOSプロンプト)を使用しないwindowベースの プログラムです。出力は-Oで指定してください。--overwriteでファイルを上書きする 方法もあります。-g --guess -v --help -V --versionはMessageBoxで表示します。 コマンドプロンプトを表示しないでnkfを呼び出したいプログラムのためのものです。 http://support.microsoft.com/KB/409393 のCreateProcessと同様の手順でnkf.exeを 呼び出す方法もあります。 使用例 「ファイル名を指定して実行」 へファイルをドラッグします。 nkfwin起動画面 http://hp.vector.co.jp/authors/VA007219/nkfwin0.gif nkfwin実行画面(MessageBox表示) http://hp.vector.co.jp/authors/VA007219/nkfwin1.gif nkf.exe, nkfwin.exe, nkf32.exeにはnkf32.dllは不要です。 nkf.exe, nkfwin.exe, nkf32.exeインストール方法 適当なディレクトリにおいてください。 nkf.exe, nkfwin.exe, nkf32.exeアンインストール方法 ファイルを削除してください。レジストリは使用していません。 nkf32.dllは「NKF32.DLL 漢字コード変換を行うDLL」として配布されているnkf32.dll 1.03a(nkf32103a.lzh)がUTF-8, UTF-16に未対応のためnkf v2.0を移植したものです。 nkf32.dllインストール方法 たとえアプリケーションの作者がC:\WINDOWS\SYSTEM、C:\WINNT\SYSTEM32、 C:\WINDOWS\SYSTEM32などにコピーするように指示している場合であっても、特に支障 がないかぎりアプリケーションと同一ディレクトリにコピーしてください。 http://www.microsoft.com/japan/msdn/windows/windows2000/dlldanger1.asp Windows 95,98,Meの場合 9x\nkf32.dll を使いたいアプリケーションと同一ディレクトリか、WindowsのSYSTEM (C:\WINDOWS\SYSTEMなど)にコピーします。 上書きが出来ない場合はMS-DOS起動ディスクなどでMS-DOSを起動してからコピーして ください。削除できないファイルを削除するツールを使う方法もあります。 Windows NT,2000,XP,Vistaの場合 NT\nkf32.dll を使いたいアプリケーションと同一ディレクトリか、WindowsのSYSTEM32 (C:\WINDOWS\SYSTEM32、C:\WINNT\SYSTEM32など)にコピーします。 上書きが出来ない場合はすでにあるファイルの名前を変更してください(nkf32.dll → nkf32old.dll など)。再起動が必要です。削除できないファイルを削除するツール を使う方法もあります。 配布ファイルを展開してもエクスプローラでnkf32.dllファイルが見つからない場合は エクスプローラの設定の「フォルダオプション」の「表示」ですべてのファイルを表示 する設定に変更してください。 nkf32.dllアンインストール方法 ファイルを削除してください。レジストリは使用していません。 「NKF32.DLL 漢字コード変換を行うDLL」nkf32103a.lzhに対して下記の機能が追加 されています。 ToMime EncodeSubject と同一機能(仕様書の名称どおり) NkfGetKanjiCode 漢字コード種別(数値) NkfFileConvert1 ファイルを変換 NkfFileConvert2 ファイルを変換 上記の機能の追加はT.Kanetoによるものです。 下記の機能の追加はVA007219によるものです。 NkfConvertSafe NkfConvertの安全版 ToHankakuSafe ToHankakuの安全版 ToZenkakuKanaSafe ToZenkakuKanaの安全版 EncodeSubjectSafe EncodeSubjectの安全版 GetNkfVersionSafeA GetNkfVersionの安全版 NkfFileConvert1SafeA NkfFileConvert1の安全版 NkfFileConvert2SafeA NkfFileConvert2の安全版 GetNkfGuessA 漢字コード種別(文字) GetNkfVersionSafeW GetNkfVersionの安全版 UNICODE対応 NkfFileConvert1SafeW NkfFileConvert1の安全版 UNICODE対応 NkfFileConvert2SafeW NkfFileConvert2の安全版 UNICODE対応 GetNkfGuessW 漢字コード種別(文字) UNICODE対応 GetNkfSupportFunctions 機能一覧 NkfUsage 使用方法の説明 UTF-16は文字列中にバイト値0が含まれることがあるのでNkfConvertSafeを使用する 必要があります。 9x\nkf32.dll Windows 95,98,Me用 UNICODE対応の関数 〜W() はつねに失敗します。 Windows NT,2000,XPでも使用可能ですがUNICODE対応の機能はつねに失敗します。 NT\nkf32.dll Windows NT,2000,XP用 UNICODE対応の関数 〜W() は機能します。 Windows 95,98,Meでは実行できません。 Windows 95,98,MeでMicrosoft Layer for Unicode(MSLU)を使用した場合については 調査していません。 nkf32.dllはnkf32.dll対応アプリケーションから使用します。nkf32103a.lzhには 対応していても本dllには対応しないアプリケーションもあるかもしれません。 UTF-8, UTF-16対応(2051以降) 入力系 -W UTF-8と仮定 -W8 UTF-8と仮定 -W16 UTF-16 big endianと仮定 -W16B UTF-16 big endianと仮定 -W16L UTF-16 little endianと仮定 出力系 -w UTF-8 BOMなし(UTF-8N) =--utf8 -w8 UTF-8 BOMあり -w16 UTF-16 big endian BOMなし =-w16B0 =---utf16 -w16B0 UTF-16 big endian BOMなし(UTF-16BE) -w16B UTF-16 big endian BOMあり -w16L0 UTF-16 little endian BOMなし(UTF-16LLE) -w16L UTF-16 little endian BOMあり 長い名前のオプションと短い名前のオプションの対応(2051) --base64 -jMB --fj -jm --mac -sLm --mime -jM --msdos -sLw --unix -eLu --windows -sLw --hiragana -h1 --katakana -h2 --katakana-hiragana -h3 --cp932 対応なし --no-cp932 対応なし --x0212 対応なし --ms-ucs-map 対応なし --utf16-input -W16 --overwrite 対応なし --cap-input 対応なし --url-input 対応なし --numchar-input 対応なし --no-output 対応なし --debug 対応なし --cp932inv 対応なし --prefix= 対応なし 連絡先 MS-DOS, Win32のnkf.exe, nkf32.dll, nkfwin.exe, nkf32.exe に固有の問い合わせは VA007219 http://hp.vector.co.jp/authors/VA007219/#contact へお願いします。 一般的な問い合わせは「プロジェクト: nkf Network Kanji Filter」(以下 nkfプロジェクトと表記) https://sourceforge.jp/projects/nkf/ へお願いします。 作者 http://www.vector.co.jp/soft/win95/util/se295331.html で表示されている作者について(敬称略・作者番号順) 市川 至 UNIX版原作者 森 和彦 MS-DOS, Win16, Win32, OS/2版nkf.exe移植者(v1.7まで) こうの しんじ nkfプロジェクト・メンバー VA007219 nkfプロジェクト・メンバー MS-DOS, Win32版nkf.exe移植者(v1.9より), Win32版nkf32.dll移植者(v2.4.1より) 智也のパパ Win32版nkf32.dll移植者(v2.0.2より) 古川 令 nkfプロジェクト・メンバー 成瀬 nkfプロジェクト・メンバー 再頒布 本ソフトウェアの一部(nkf32.dll等)を再頒布する時は、入手方法として下記のURLを 明記してください。 http://www.vector.co.jp/soft/win95/util/se295331.html ただし、本ソフトウェアの全ファイルを無変更で再頒布する時と、nkfプロジェクト からの配布物のみを再頒布する時は、上記のURLを明記する必要はありません。 nkfプロジェクトからの配布物とは https://sourceforge.jp/projects/nkf/ より入手 できる次のファイルをいいます。 nkf.txt, changes.txt, release.txt です。 権利表示 (2090 nkf -v実行結果より) Network Kanji Filter Version 2.0.9 (2009-01-20) Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa). Copyright (C) 1996-2009, The nkf Project. nkfプロジェクトからの配布物の配布条件等は2.0.9よりzlib/libpng Licenseに変更 になりました。 オリジナルのnkf.cに記載されている内容について転記しておきます。 /* * Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA). * Copyright (c) 1996-2009, The nkf Project. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * * 3. This notice may not be removed or altered from any source distribution. */ #define NKF_VERSION "2.0.9" #define NKF_RELEASE_DATE "2009-01-20" #define COPY_RIGHT \ "Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).\n" \ "Copyright (C) 1996-2009, The nkf Project."