CGIの中に文字をして、
サーバーにアップして、アクセスすると、
ある一部のカタカナと漢字が文字化けを起す事があります。
例えば【ソ】【表】
文字化けをした場合、スクリプトを再度開きその部分の後ろに【\】をつければ解消する事は解っているのですが、
いちいちサーバーにアップして見なければ、
文字化けがおきているかどうか解らないので、
文字化けをおこす文字リストなどがあれば、
アップする前に対処できるので、
そう言ったリストはありませんでしょうか?
探して見てるのですが、なかなか見つかりません。

このQ&Aに関連する最新のQ&A

A 回答 (2件)



のShift JISコードを見てください

後半が
5Ch
になっているのが解りますね
ASCIIコードの5Cは\(円マーク)です。

該当する文字は

― (815Ch)
ソ (835Ch)
Ы (845Ch)
(9) (875Ch)
噂 (895Ch)
浬 (8A5Ch)
欺 (8B5Ch)
圭 (8C5Ch)
構 (8D5Ch)
蚕 (8E5Ch)
十 (8F5Ch)
申 (905Ch)
曾 (915Ch)
箪 (925Ch)
貼 (935Ch)
能 (945Ch)
表 (955Ch)
暴 (965Ch)
予 (975Ch)
禄 (985Ch)
兔 (995Ch)
喀 (9A5Ch)
媾 (9B5Ch)
彌 (9C5Ch)
拿 (9D5Ch)
杤 (9E5Ch)
歃 (9F5Ch)
濬 (E05Ch)
畚 (E15Ch)
秉 (E25Ch)
綵 (E35Ch)
臀 (E45Ch)
藹 (E55Ch)
觸 (E65Ch)
軆 (E75Ch)
鐔 (E85Ch)
饅 (E95Ch)
鷭 (EA5Ch)
偆 (ED5Ch)
砡 (EE5Ch)
纊 (FA5Ch)
犾 (FB5Ch)

ですね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2004/03/17 23:57

No.1です



(9) (875Ch)

は強制的に(9)に変更されてしまっているので、イメージ的にはIXです。

IX (875Ch)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qカタカナ「ソ」の文字化けについて

いつもお世話になります。

現在Shift-JIS環境でCGIを動作させているのですが、データベース(shift-jis)内に「ヒソカ」という文字列があり、この文字列を、

読み込んで→再度書き込み
【ソース】
$SQL = $dbh->prepare( qq{ SELECT * FROM User WHERE `id` = "$in{'id'}" })
$SQL -> execute();
@DATE = $SQL ->fetchrow_array();
※@DATE [0]にその文字列が入っています。
(varchar(30))

とした際「ヒャJ」となります。
恐らく「http://www.shtml.jp/mojibake/sjis_cgi.html」で書かれている問題だと思うのですがどうにか対処する方法はないでしょうか。

何卒よろしくお願い致します。

Aベストアンサー

データベースへinsertする時点でエスケープ処理が必要です
$quoted_str = $dbh->quote($str);
これで ヒソカ が 'ヒソ\カ' にエスケープされます

Qソ噂浬欺圭構蚕十申曾箪貼能表などの文字化け

CGIプログラムで、htmlに書き出す文字で、「ソ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭」があると文字化けするので、文字の後ろに \ を付けますが、これらの文字はどうして文字化けしてしまうのか、どなたかご存知のかたお教え下さい。
前々から不思議に思っていて。。。

Aベストアンサー

KENTWEBに詳細な解説があります。
参考URLをご覧下さい。

コードが途中で展開されてしまうため、ですね。

参考URL:http://www.kent-web.com/pubc/jcode/index.html

Qアップしたホームページが文字化けします

アップしたCGIホームページが文字化けします
OSはWinXPです
IEは6です 文字化け表示されたページは
IEの表示~エンコードを指定して 自動選択を外すと正常に表示されます
CGI作者は 文字コードEUCで作成しましたと
書いてあります。
アップロードする時に 何かの作業が必要なのでしょうか?
いろいろやってみるのですがうまくいきません
3日間悩んでいる私を助けてください
お願いします

Aベストアンサー

実はEUC以外の文字コードで書かれている、ってことはない
ですか?

ちなみにhttp-equivで指定した文字コードはたまに失敗することが
あります。できればhttpヘッダで直接指定するのが
よいのですが、簡単にEUCにできる方法を一つ。

<html>
<head>
<!-- 京 -->
.
.
.

と、ソースのheadタグ直後にコメントアウトした「京」の字を
記述しておくと、ブラウザはEUCとして確実に判別してくれます。
「美乳テーブル」なんて呼ばれ方も。。。

参考URL:http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E7%BE%8E%E4%B9%B3%E3%83%86%E3%83%BC%E3%83%9

Q送信フォームの全角文字情報がcsvで文字化けしてしまうんですが…

送信フォームの入力情報をcsvに蓄積するcgiで、
csvに情報はきちんと送られてきているのですが、
全角文字の部分がすべて文字化けしています。

ちなみに、このフォームは共通のcgiを使用して、
社内の同じサーバの複数のサイトに設置しているのですが、
文字化けするのは、ココログのブログ内の
サイドメニュー部分に設置したフォームからの
データだけのようです。

原因が推測できる方がいましたらよろしくお願いします。

Aベストアンサー

>文字化けするのは、ココログのブログ内のサイドメニュー部分に設置したフォーム

フォームを設置しているページの文字コードが違うからでは?

自分のサイト内のフォームなら、文字コードの統一は難しくないけど、別のサイトからも受け取るなら別な文字コードで送信されてくる可能性も考慮すべきです。
ちゃんと解析しているとしても、jcode.plを利用している場合には、utf8などのunicodeは変換できません。
さらにcgiといってもperlとはかぎらないので、それらについて補足がないことには原因解明の手がかりもありません。

Q【CGI】画像の表示の仕方【Miniりすと】

こんにちは。現在データベース代わりに
http://www.minicgi.net/cgi2/こちらの「Miniりすと ver 4.01」を設置中です。
普通に設置することは可能なのですが
ttp://mirror.obi.ne.jp/gow/line_mem/line_mem.cgi
この方のリストのように、詳細を押さずにそのまま画像を表示させたいのです。
(できれば、アップロードしてもらった画像をそのまま表に表示させたいです)
画像サイズは大体200四方あたりを予定しています。
自分でどうにかしてみようと様々な方法を試したのですが中々うまくいかず、お力を貸していただきたいです。
できればわかりやすく詳しく教えていただけると助かります。
申し訳ありませんが、なるべく早い回答を待っています…(緊急の設置なので)
よろしくお願いいたします。

Aベストアンサー

”list.cgi”の561~562行目に名前を表示する部分があります(以下)。

if($name){ print"<td width=$show_name><a href=\"$cgipath?id=$num&mode=show\">$name</a></td>";}
else{print"<td><a href=\"$cgipath?id=$num&mode=show\">---</a></td>";}

それから、同じく”list.cgi”の732~736行目に画像を表示する部分があります(以下)。

if($gazou && $tail){
if($imgflag){ $tail ="<a href=\"$imgdir2$imgno$tail\"><img src=\"$imgdir2$imgno$tail\" border=0 width=$imgw height=$imgh alt=\"$imgno$tail\"></a>"; }
else{ $tail ="<img src=\"$imgdir2$imgno$tail\" border=0 width=$imgw height=$imgh alt=\"$imgno$tail\">"; }
print "<TR><TD class=\"left\">$gazou</TD><TD class=\"right\">$tail</TD></TR>\n";
}

なので以下のように、画像を表示するコードを名前を表示するコードにくっつけてみては
いかがでしょうか?

if($name){ print"<td width=$show_name><a href=\"$cgipath?id=$num&mode=show\">$name</a></td>";}
else{print"<td><a href=\"$cgipath?id=$num&mode=show\">---</a></td>";}
    ↓    ↓
if($name) {
print"<td width=$show_name><a href=\"$cgipath?id=$num&mode=show\">$name</a>";
if($gazou && $tail){
if($imgflag){ $tail ="<a href=\"$imgdir2$imgno$tail\"><img src=\"$imgdir2$imgno$tail\" border=0 width=$imgw height=$imgh alt=\"$imgno$tail\"></a>"; }
else{ $tail ="<img src=\"$imgdir2$imgno$tail\" border=0 width=$imgw height=$imgh alt=\"$imgno$tail\">"; }
print "<br>$tail</TD>\n";
}
}

それから、同じく”list.cgi”の535行目のデータを変数に入れる部分を以下のように変えてみてください。

($num,$name,undef,$last_time,$time1,$imgno,undef,$mail,$mailflag,$url,$imgurl,$tail,undef,undef,undef,undef,undef,undef,undef,@item) = split(/,/);
    ↓    ↓
($num,$name,$pass,$last_time,$time1,$imgno,$host,$mail,$mailflag,$url,$imgurl,$tail,$imgw,$imgh,$imgflag,$comment,undef,undef,undef,@item) = split(/,/);

”list.cgi”の561~562行目に名前を表示する部分があります(以下)。

if($name){ print"<td width=$show_name><a href=\"$cgipath?id=$num&mode=show\">$name</a></td>";}
else{print"<td><a href=\"$cgipath?id=$num&mode=show\">---</a></td>";}

それから、同じく”list.cgi”の732~736行目に画像を表示する部分があります(以下)。

if($gazou && $tail){
if($imgflag){ $tail ="<a href=\"$imgdir2$imgno$tail\"><img src=\"$imgdir2$imgno$tail\" border=0 width=$imgw height=$imgh alt=\"$imgno$...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報