前提・実現したいこと
windows環境でperlを利用し公開されているモジュールを使用したい。
使用したいモジュール
ShiftJIS::CP932::MapUTF - Microsoft CP-932とUnicodeとの変換
外部モジュールを利用しメソッド結果を返却を考えています。
試したこと
①windowsへperl導入Download Perl
②ShiftJIS/CP932/MapUTF.pm [tar.gz] v1.03 [2011-08-07]のサイトからShiftJIS/CP932/MapUTF.pm [tar.gz] v1.03 [2011-08-07]のtar.gzをダウンロード解凍しCドライブワークフォルダへ配置
③windowsコマンドプロンプトを開きコンパイル実行
cmd
1 make clean 2 perl disableXS 3 perl Makefile.PL 4 make 5 make test 6 make install
④下記コードを記述
該当のソースコード
perl
1use strict; 2use warnings; 3use ShiftJIS::CP932::MapUTF; 4print(utf8_to_cp932('俠俱剝吞啞噓嚙囊塡姸屛屢幷あ','g'));
⑤hello.plを実行
perl hello.pl
発生している問題・エラーメッセージ
Unable to flush stdout: Invalid argumen
エラー文言調べましたが特段問題ではない様子でしたが、結果が出力されませんでした。
Unable to flush stdout: Invalid argumentの調査
必ずしも問題ではない
他には何が原因と考えられるでしょうか。アドバイス頂けないでしょうか。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Perlバージョン:revision 5 version 32 subversion 0
OS:windows10
その後の対応
strawbery perlを導入後エラー文言はでなくなったのですが、変換の結果が『あ』しか出ず、機能していないようでした。こちらのモジュールについてどなたかアドバイス頂けないでしょうか。よろしくお願いいたします。
その後の対応2
その後の対応3
言語付属のエンコード処理
Perlアドバイス頂きましたが、一度他言語のencodeを行ってみました。(pythonが慣れているので)
Pythonで文字コードを変換する方法【初心者向け】現役エンジニアが解説
python
python
1'こんにちは!'.encode('cp932')
サイトの結果では
こうなっているのに空白だったということは、そもそも表示に問題があるのではと少し考えだしております。
別ver( 唖に変わって欲しい)
python
1'啞'.encode('cp932')
次にアドバイス頂いたperlでのencode処理
perl
1# 文字コードの変換 2use Encode 'from_to'; 3use utf8; 4 5# 外部からの入力(コマンドライン引数) 6my $str = '啞'; 7 8# $str自体が変換される 9from_to($str, 'UTF-8', 'Shift_JIS');
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/08 11:29
2021/09/08 12:37
2021/09/09 18:16
2021/09/10 01:16
2021/09/10 04:04
2021/09/19 08:12
2021/09/19 23:50
2021/09/20 12:04