CGI-BBS > CGI > Perl > Perlの改造で文字列を変換したい。


カレッヂ
カレッヂ


質問者 エムレ  投稿日 2/19(水) 16:07:56
perl初心者です、教えてください。 

$oldtxt[0] = "aaa"; ・・・ $oldtxt[n] = "jjj"; 
$newtxt[0] = "111"; ・・・ $newtxt[n] = "999"; 

$buf = "長い日本語の文書・・・・"; 

s///の置き換え演算子を用いて$bufの中にある全てのoldtxtをnewtxtへ変換を行いたいのですが、 

for ($i = 0; $i < $n; $i++){ 
$buf =~ s/$oldtxt[$i]/$newtxt[$i]/giox ; 
} 

とすると内部が展開?されてうまく変換できません。 "aaa"なども日本語です。 
掲示板等の文字列の変換を考えております。
分かりにくい文章で申し訳ないのですが、どなたか方法を教えてください。 
宜しくお願いします。 


プロバイダ参照:LAN
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:vi
FTPソフト:無し
サーバ移転:していない
改造:していない 改造前正常動作
CGI習熟度:middle

回答者 しあわせのツボ  [削除]  投稿日 2/19(水) 20:35:59
「うまく変換できない」というのはどのような状態ですか。
エラーが出るのか、全く変換されないのか、まるっきり文字化けしてしまうのか、
変換はされるが特定の文字が壊れるのか、など様々な状況が考えられ、
それによって対処も違ってきます。

それと確認しますが、そのスクリプトはSJIS設置ですか?
質問者 エムレ  [削除]  投稿日 2/20(木) 10:59:38
>しあわせのツボさま

漢字コードの見なおしを行ったところ解決できました。

テスト環境 LINUXサーバー
本番環境  windows系

のため、マッチングしなかった様です。
ありがとう、ございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技