SHIFT-JISで一部の漢字が文字化けしてCGIが動かない

SHIFT-JISで一部の漢字が文字化けしてCGIが動かない問題が発生しました。

他の人が作ったperlのCGIを使ってサイトを作成していたのですが、特定のページでInternal Server Errorが発生しました。この場合、ファイルのパーミッションがおかしいのが原因ということはよくあるのですが、一括してパーミッションを変更していたので問題はありませんでした。

サーバーのエラーログを確認すると何やら文字コードの問題のようです。問題が発生している行数とカラムが表示されていましたので原因の個所を確認しました。

[Sun Dec 31 14:52:58.320053 2017] [cgi:error] [pid 62413] [client 182.236.38.11:0] AH01215: Unrecognized character \\x92; marked by <-- HERE after ','\x90^\x90\\','<-- HERE near column 229 at maruchan.cgi line 24.:
[Sun Dec 31 14:52:58.320178 2017] [cgi:error] [pid 62413] [client 182.236.38.11:0] End of script output before headers: maruchan.cgi

文字を消しながら確認すると原因は少し前にある「申」という漢字でした。調べてみるとSHIFT-JISで以下の漢字は文字化けが起こるそうです。「申」入ってますねぇ。

「―」,「ソ」,「噂」,「欺」,「圭」,「構」,「蚕」,「十」,「申」,「貼」,「能」,「表」,「暴」,「予」,「禄」,「兔」

普通に使う漢字ばかりなので文字コードをUnicodeに変えてしまいたいところですが、他人の作ったプログラムであるため我慢して別の対応方法を探ることにします。

これらの文字コードは2バイト目が「5C」になっています。ということは「\」(バックスラッシュ、円マーク)ですね。

結局、「申\」とすることで解決しました。

Ubuntu17.10にアップグレードすると日本語入力ができなくなった

Ubuntu17.10にアップグレードすると日本語入力ができなくなりました。言語サポートを開くと「言語サポートが完全にはインストールされていません」という表示されました。

しかし、「インストール」を行っても日本語入力が出来ません。以下のサイトを見ると一度ログアウトしてログインし直す必要がありました。

Ubuntu 17.10で日本語が入力できない!どうすればいい?

ログインし直すと今度はマウスカーソルが矢印に切り替わらず入力ができなくなりました。それだけではありません。USBメモリへの書き込みも出来ないのです。書き込み権限を追加しようとしても出来ません。

これには焦りました。何しろ今作成した請求書もろもろをUSBに書き込んで印刷しすぐに送らなければいけません。請求書作成しながらアップデートするなという話もありますが...

とにかく原因はわかりませんが、ログイン時にデスクトップをUnityに変更すると解消されました。めでたし?

Ubuntu17.04でDVDを再生する方法♪

Ubuntu17.04をインストールしたものの標準では出来ないことがいくつかあります。その一つが市販DVDの再生です。今回はUbuntu17.04でDVDを再生する方法をご紹介します。

まずは、「VLCメディアプレイヤー」をインストールするため、Ubuntuデスクトップ左端のランチャーから「システム設定」を起動します。Ubuntu17.04でDVD再生する

Ubuntu17.04でDVD再生する

「詳細」を選択します。

Ubuntu17.04でDVD再生する

「リムーバブルメディア」の「DVDビデオ」から、「別のアプリケーション」を選択します。Ubuntu17.04でDVD再生する

「新しいアプリケーションを探す」を押下します。

Ubuntu17.04でDVD再生する

上部の検索BOXに「VLC」と入力して「VLCメディアプレイヤー」を検索します。Ubuntu17.04でDVD再生する

「VLCメディアプレイヤー」をインストールします。

Ubuntu17.04でDVD再生する

「DVDビデオ」に「VLCメディアプレイヤー」と表示されればOKです。

Ubuntu17.04でDVD再生する

「ubuntu-restricted-extras」「libdvd-pkg」をインストールします。

ランチャーから「端末(ターミナル)」を起動します。Ubuntu17.04でDVD再生する

まずは「ubuntu-restricted-extras」をインストールします。

$ sudo apt install ubuntu-restricted-extras

つづいて「libdvd-pkg」をインストールします。

$ sudo apt install libdvd-pkg

選択する画面が表示されたら「了解」「はい」を選択しましょう。

Ubuntu17.04でDVD再生する

最後に「libdvd-pkg」の設定を行います。「dpkg-reconfigure」はインストール済みパッケージを再設定するコマンドです・

$ sudo dpkg-reconfigure libdvd-pkg

選択画面が表示されたら「はい」を選択します。

Ubuntu17.04でDVD再生する

これでDVDが再生可能になりました。