2019年08月21日

SJISからUTF-8への移行。

一昔前ですと、PerlのCGIは「Shift_JIS」が主流で、その後仕事では「EUC-JP」にする事が多くなりました。
もうここ数年ですと「UTF-8」がメインになりつつあるようです。
そこで10数年経った自前サイトのCGIも、SJISからUTF-8へ移行させよう、という事にしました。
まずは
・「jcode.pl」ライブラリはUTF-8に対応していないので、それに代わるものを入手
「Jcode.pm」モジュールで、それは解決しました。
・CGIファイルでJcode.pmが使えるよう、書き換え
この部分↓(直下のlibディレクトリに入れているとして)
require './lib/jcode.pl';
を↓以下のように書き換え
use lib './lib';
use Jcode;
・次に以下を書き換え
&jcode'convert(*value,'sjis');
      ↓
Jcode->new($value)->h2z->utf8;
・Content-typeヘッダも以下に書き換え
print "Content-type: text/html;charset=UTF-8\n\n";
・ファイル自体を「UTF-8N(BOM無し)」に変更
※BOMについては、以下のサイトで解説されています。
https://uxmilk.jp/48923

レンタルサーバで確認するのも何だったので、自宅マシンをNASとして動作テスト。
※NASについては、以下のサイトで解説されています。
https://www.iodata.jp/product/nas/info/landisk/nas.htm
テストする前にPerlやPHPやNAS用のアプリをインストールして、環境構築。
ローカル環境で動作確認が出来ました。

※コードの書き換え部分ですが、上記は一例ですので、使えない場合もあります。
 その際には検索したり書籍で調べてみて下さい。

必要に応じて、Windowsの場合は、環境変数の設定なども必要になりますので、そのあたりは
各々調べてみて下さい。

最初動作確認したら、見事に文字化け(汗)
掲示板だったので、記録ファイルを同じUTF-8にして解決。
動作も…おお、ちゃんと書き込み、出来た!
という次第で、ちょっと時間はかかりますが、NASで動作確認完了したところで
レンタルサーバにアップロード。問題無く動いてくれました。

私自身、今は趣味の範疇でこういった事をやってますので、正直知識はあまりありません(汗)
その際は人に聞くよりある程度までは自分で調べてやっています。
大体は検索で事足ります。
検索ワードを色々変えて探してみれば、簡単な問題ならほぼ解決出来るので、
そういったクセをつけるのも大事だと思っています。あくまで持論ですが(汗)

どうしてもわからない!となったら、質問サイトも色々ありますので、
何をしたいか、こうやってみたけどダメでした、こういった方法でやってますが…
などなど、聞きたい情報は(長くなり過ぎない程度にまとめて)
部分的なコードも添えられたら添えて、聞いてみるのもイチ方法かと。
ただ、これはあくまで最終手段…かな…。
自分で調べた方が、うんと勉強になりますので…。

えーっと、上記はあくまで一例ですので(汗)
本当に!一例ですので、鵜呑みにせず、それぞれの方法を見つけてみて下さい。
※ご質問等あってもお答えできかねますので…よろしくお願いします m(_ _)m
【プログラミングの最新記事】
posted by もの実高志子 at 06:28| Comment(2) | プログラミング
この記事へのコメント
手元でHTTPサーバーの挙動を確かめるためにわざわざ別のPCを用意するのも大変です。
コードを書いているPCにアプリケーションなり、OSに組み込まれたHTTPサーバーを動かすのも、セキュリティリスクになります。
そういう時は、BuffaloのNASがお手軽です。
これは、httpサーバー、SQLサーバー、PHPが組み込まれています。Tornetのクライアントまでついているというお節介さんです。
機能てんこ盛りなのに、Rootは取れないという中途半端なのですが、手元に於いて、自分のHTMLコードの挙動をみるだけならお手頃かもしれません。Perlは組み込むのはちょっとホネかもしれません。
DD拝
Posted by DD at 2019年08月22日 13:31
確かに…リスクはつきものですよね。
ちょっと今財政難なもので、NASを買う余裕が無いというのがありまして(汗)
Perlはちょいと外せないので、致し方なく
(;^_^A
ただ、いずれはセキュリティ環境をしっかり整えたいですね。
今回も有益な情報をありがとうございました。
Posted by もの実高志子 at 2019年08月22日 15:00
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: