No.253 | 投稿日時: | 2005/02/17(木) 14:59 <親記事> |
投稿者: | Linux初心者 茨城人 |
はじめまして
Linuxを最近使いはじめてプログラム作成をしています。
下記コマンドをC言語を使用して、文字を変換するさい、
特定文字列だけ文字化けしてしまい悩んでいます。
コマンド:iconv -f SJIS -t EUC-jp (SJISファイル) > (EUCファイル)
現象:SJISファイルをEUCファイルに変換した時に
「不正な入力シーケンスがありました」のエラー
となり以降の文字が変換されません。
異常となっている文字で今わかっていのはローマ数字です。
大変申し訳ないのですが、ご教示お願いいたします。
No.255 | 投稿日時: | 2005/02/17(木) 22:35 <↑親記事:No.253> |
投稿者: | 森山 将之 |
> コマンド:iconv -f SJIS -t EUC-jp (SJISファイル) > (EUCファイル)
> 現象:SJISファイルをEUCファイルに変換した時に
> 「不正な入力シーケンスがありました」のエラー
> となり以降の文字が変換されません。
> 異常となっている文字で今わかっていのはローマ数字です。
# iconv -l | grep EUCJP
を実行して、EUCJP-MS が出てくるようであれば、次のようにオプション指定する事でJIS X 0208 の13区にNECが定義したNEC特殊文字(ローマ数字など)を変換できるようになります。
# iconv -f CP932 -t EUCJP-MS
EUCJP-MS が無い場合は、次のパッチを libiconv に当ててメイクして、libiconv 版の iconv コマンドを使って CP932, EUCJP-MS を使うようにしてください。
http://www2d.biglobe.ne.jp/%7Emsyk/software/libiconv-patch.html
EUCJP-MS の注意点としては、WindowsのEUC-JPと互換性があるのは、JIS X 0208 の1区から84区までで、はしご高などはコード値が違うので文字化けしますのでご注意ください。
実質、Windows のEUC-JPと互換性のある機種依存文字は、JIS X 0208 13区のNEC特殊文字だけとなります。
NEC特殊文字については、次のページをご覧ください。
http://www2d.biglobe.ne.jp/%7Emsyk/charcode/cp932/Windows-31J-charset.html
No.256 | 投稿日時: | 2005/02/18(金) 09:29 <↑親記事:No.255> |
投稿者: | Linux初心者 茨城人 |
ありがとうございました。早速試してみます。
ご教授ありがとうございました。
No.257 | 投稿日時: | 2005/02/18(金) 10:10 <↑親記事:No.255> |
投稿者: | Linux初心者 茨城人 |
パッチの内容を見たのですが、
下記パッチのみあてればよろしいですか?
libiconv-1.9.2-cp932-patch.gz libiconv-1.9.2 cp932修正, eucJP-ms追加 パッチ
他のパッチもあてたほうがよろしいですか?
理解してない部分もありまして、
何度も申し訳ございません。
No.260 | 投稿日時: | 2005/02/18(金) 12:30 <↑親記事:No.257> |
投稿者: | 森山 将之 |
> libiconv-1.9.2-cp932-patch.gz libiconv-1.9.2 cp932修正, eucJP-ms追加 パッチ
シフトJISとEUC-JPのエンコーディング変換だけであれば、このパッチで大丈夫です。
ただし、EUCJP-MS に変換したテキストファイルを秀丸エディタや EmEditor などで開くと、IBM拡張文字が文字化けしてしまう事になるので注意が必要です。
No.270 | 投稿日時: | 2005/02/21(月) 12:06 <↑親記事:No.260> |
投稿者: | Linux初心者 茨城人 |
先日はありがとうございました。大変お世話になっております。
「iconv -f CP932 -t EUCJP-MS」をLinuxマシンで直接実行すれば
変換できるようになったのですが、
AIXマシンからリモートシェルにより実行すると変換結果が0件に
なってしまいます。
なにをリンクすれば正常な結果がえられるのでしょうか?
ご教示いただければありがたいです。宜しくお願いします。
No.271 | 投稿日時: | 2005/02/21(月) 21:04 <↑親記事:No.270> |
投稿者: | 森山 将之 |
> AIXマシンからリモートシェルにより実行すると変換結果が0件に
> なってしまいます。
これだけだと、具体的な何を実行しているのか不明なので、直接的にどうすれば良いという事は言えません。
一般論としては、リモートで実行されるプログラムの環境変数設定は、~/.bash_profile などは参照されないので、プログラム内で環境変数の設定をしたり、実行するコマンドを絶対パスで指定するなどの必要があります。
No.272 | 投稿日時: | 2005/02/22(火) 09:52 <↑親記事:No.271> |
投稿者: | Linux初心者 茨城人 |
リモートシェルでの起動の件は、リモートで起動されるシェルにPATHを
設定したら文字変換が正常にできるようになりました。
色々とご教示いただき大変ありがとうございました。
またご教示していただく事があるかと思いますのでその時は
宜しくお願いします。
No.253 | 投稿日時: | 2005/02/17(木) 14:59 <親記事> |
投稿者: | Linux初心者 茨城人 |
はじめまして
Linuxを最近使いはじめてプログラム作成をしています。
下記コマンドをC言語を使用して、文字を変換するさい、
特定文字列だけ文字化けしてしまい悩んでいます。
コマンド:iconv -f SJIS -t EUC-jp (SJISファイル) > (EUCファイル)
現象:SJISファイルをEUCファイルに変換した時に
「不正な入力シーケンスがありました」のエラー
となり以降の文字が変換されません。
異常となっている文字で今わかっていのはローマ数字です。
大変申し訳ないのですが、ご教示お願いいたします。
No.255 | 投稿日時: | 2005/02/17(木) 22:35 <↑親記事:No.253> |
投稿者: | 森山 将之 |
> コマンド:iconv -f SJIS -t EUC-jp (SJISファイル) > (EUCファイル)
> 現象:SJISファイルをEUCファイルに変換した時に
> 「不正な入力シーケンスがありました」のエラー
> となり以降の文字が変換されません。
> 異常となっている文字で今わかっていのはローマ数字です。
# iconv -l | grep EUCJP
を実行して、EUCJP-MS が出てくるようであれば、次のようにオプション指定する事でJIS X 0208 の13区にNECが定義したNEC特殊文字(ローマ数字など)を変換できるようになります。
# iconv -f CP932 -t EUCJP-MS
EUCJP-MS が無い場合は、次のパッチを libiconv に当ててメイクして、libiconv 版の iconv コマンドを使って CP932, EUCJP-MS を使うようにしてください。
http://www2d.biglobe.ne.jp/%7Emsyk/software/libiconv-patch.html
EUCJP-MS の注意点としては、WindowsのEUC-JPと互換性があるのは、JIS X 0208 の1区から84区までで、はしご高などはコード値が違うので文字化けしますのでご注意ください。
実質、Windows のEUC-JPと互換性のある機種依存文字は、JIS X 0208 13区のNEC特殊文字だけとなります。
NEC特殊文字については、次のページをご覧ください。
http://www2d.biglobe.ne.jp/%7Emsyk/charcode/cp932/Windows-31J-charset.html
No.256 | 投稿日時: | 2005/02/18(金) 09:29 <↑親記事:No.255> |
投稿者: | Linux初心者 茨城人 |
ありがとうございました。早速試してみます。
ご教授ありがとうございました。
No.257 | 投稿日時: | 2005/02/18(金) 10:10 <↑親記事:No.255> |
投稿者: | Linux初心者 茨城人 |
パッチの内容を見たのですが、
下記パッチのみあてればよろしいですか?
libiconv-1.9.2-cp932-patch.gz libiconv-1.9.2 cp932修正, eucJP-ms追加 パッチ
他のパッチもあてたほうがよろしいですか?
理解してない部分もありまして、
何度も申し訳ございません。
No.260 | 投稿日時: | 2005/02/18(金) 12:30 <↑親記事:No.257> |
投稿者: | 森山 将之 |
> libiconv-1.9.2-cp932-patch.gz libiconv-1.9.2 cp932修正, eucJP-ms追加 パッチ
シフトJISとEUC-JPのエンコーディング変換だけであれば、このパッチで大丈夫です。
ただし、EUCJP-MS に変換したテキストファイルを秀丸エディタや EmEditor などで開くと、IBM拡張文字が文字化けしてしまう事になるので注意が必要です。
No.270 | 投稿日時: | 2005/02/21(月) 12:06 <↑親記事:No.260> |
投稿者: | Linux初心者 茨城人 |
先日はありがとうございました。大変お世話になっております。
「iconv -f CP932 -t EUCJP-MS」をLinuxマシンで直接実行すれば
変換できるようになったのですが、
AIXマシンからリモートシェルにより実行すると変換結果が0件に
なってしまいます。
なにをリンクすれば正常な結果がえられるのでしょうか?
ご教示いただければありがたいです。宜しくお願いします。
No.271 | 投稿日時: | 2005/02/21(月) 21:04 <↑親記事:No.270> |
投稿者: | 森山 将之 |
> AIXマシンからリモートシェルにより実行すると変換結果が0件に
> なってしまいます。
これだけだと、具体的な何を実行しているのか不明なので、直接的にどうすれば良いという事は言えません。
一般論としては、リモートで実行されるプログラムの環境変数設定は、~/.bash_profile などは参照されないので、プログラム内で環境変数の設定をしたり、実行するコマンドを絶対パスで指定するなどの必要があります。
No.272 | 投稿日時: | 2005/02/22(火) 09:52 <↑親記事:No.271> |
投稿者: | Linux初心者 茨城人 |
リモートシェルでの起動の件は、リモートで起動されるシェルにPATHを
設定したら文字変換が正常にできるようになりました。
色々とご教示いただき大変ありがとうございました。
またご教示していただく事があるかと思いますのでその時は
宜しくお願いします。