Perl cgiの文字化けを直したい (UTF8)

このQ&Aのポイント
  • 現在、jcode.plを使用したShift JISで構成されていた Perlのcgi を UTF-8 に改造しています。フォームに書き込んだPAGETITLEを別ファイルへUTF-8で書きこむ際に、文字化けしてしまいます。
  • 以下のPerlのPAGETITLEをどのように改造すれば、文字化けしないで、$foundations_fileへUTF-8で書き込みすることができるのでしょうか?※個人的にはデータ書き込みの sub REGIST 以下を改造すれば良いのではと推測していますが、どうやれば良いのか分かりません。
  • どうかご教示、よろしくお願い致します。m(_ _)m
回答を見る
  • ベストアンサー

Perl cgiの文字化けを直したい (UTF8)

現在、jcode.plを使用したShift JISで構成されていた Perlのcgi を UTF-8 に改造しています。 フォームに書き込んだPAGETITLEを別ファイルへUTF-8で書きこむ際に、文字化けしてしまいます。 書きこんだファイルを開けてみると、日本語が文字化けしています(アルファベットは大丈夫) 以下のPerlのPAGETITLEをどのように改造すれば、文字化けしないで、$foundations_fileへUTF-8で書き込みすることができるのでしょうか? ※個人的にはデータ書き込みの sub REGIST 以下を改造すれば良いのではと推測していますが、どうやれば良いのか分かりません。 どうかご教示、よろしくお願い致します。 m(_ _)m ------------------------------------- #!/usr/bin/perl use utf8; binmode STDIN,":utf8"; binmode STDOUT,":utf8"; #基本セットアップファイル読込 require './setup_manage.cgi'; #このファイル $cgi = "./foundations.cgi"; #デコード処理 &DECODE; sub VIEW { #基本設定ファイルの読み込み &FOUNDATIONS_READ; 【省略】 <TABLE width="100%" border="0" cellspacing="0" cellpadding="1"><TR> <TD width="70%">変更するデータを直接書き換えて [ 編集実行 ] を押して下さい。</TD> <FORM method="post" action="./login.cgi"> <TD width="30%" align="right"><INPUT type="submit" value="メインメニューに戻る"></TD> <INPUT type="hidden" name="mode" value="main"> <INPUT type="hidden" name="pw" value="$in{'pw'}"> </FORM> </TR></TABLE> 【省略】 <TABLE border="0" cellspacing="1" cellpadding="4" bgcolor="#999999"><TR> <FORM name="SUBMIT" method="post" action="$cgi" onSubmit="return kakunin()"> <TD width="160" bgcolor="#eeeeee"> <TABLE border="0" cellspacing="0" cellpadding="1"><TR> <TD>ページタイトル</TD> </TR></TABLE> </TD> <TD width="400" bgcolor="#ffffff"> <TABLE border="0" cellspacing="0" cellpadding="1"><TR> <TD><INPUT type="text" name="PAGETITLE" size="60" value="$PAGETITLE"></TD> </TR></TABLE> </TD> 【省略】 ------------------------------------------------- # データ書き込み #------------------------------------------------- sub REGIST { #全角英数字を半角に変換 $zenkaku = '0123456789'; $hankaku = '0123456789'; $in{'PAGETITLE'} =~ s/\,/&%/g; $in{'PAGE1'} =~ s/\,//g; $in{'PAGE2'} =~ s/\,//g; $in{'PAGE3'} =~ s/\,//g; $in{'CATECOL'} =~ s/\,//g; $in{'PERIOD'} =~ s/\,//g; $in{'TABLECOL'} =~ s/\,//g; $in{'SIZECOL'} =~ s/\,//g; $in{'SIZEROW'} =~ s/\,//g; $in{'COPYRIGHT'} =~ s/\,/&%/g; #ファイルロック開始 if( $lockkey ne '0' ){ &LOCK; } #ファイルに書きこむ if (!open(OUT,">:utf8",$foundations_file)) { &ERROR( read_foundations ); } print OUT "$datenow,$in{'PAGETITLE'},$in{'INIMODE'},$in{'MODECHG'},$in{'PAGE1'},$in{'PAGE2'},$in{'PAGE3'},$in{'CATEVIEW'},$in{'CATECOL'},$in{'INICATE'},$in{'PERIOD'},$in{'RANKING'},$in{'CMODE'},$in{'RANKVIEW'},$in{'TITLEVIEW'},$in{'SRCHVIEW'},$in{'INPVIEW'},$in{'DATAROW'},$in{'TABLECOL'},$in{'BARCLR'},$in{'BARPER'},$in{'IMGPRT'},$in{'IMGSIZE'},$in{'SIZECOL'},$in{'SIZEROW'},$in{'IMGFRM'},$in{'COPYRIGHT'},$in{'GPVIEW'},"; close(OUT); #ファイルロック解除 if( $lockkey ne '0' ){ &UNLOCK; } &COMP; }

  • mcse
  • お礼率55% (148/266)
  • Perl
  • 回答数12
  • ありがとう数12

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.9

どう「実際に Encode::decode を使ったのか」が疑問ですが.... 少なくとも, pack しただけでダメなのは文字数を考えれば明らかで, 「pack で得られた文字列を改めて UTF-8 として解釈し直す」というのは必須なはず. あと, 「フォームで出てくる」というときに, フォントなんかも問題になりえる. そもそも UTF-16 な出力をしているときに UTF-8 な出力をしちゃったらどう考えてもダメだし, あるいは「理由はさておき UTF-8 な文字コードを上手く扱えないフォントレンダラー」だったりするとやっぱり UTF-8 じゃダメだよね. ということは, 「フォームの表示を見る」だけではダメで, HTML (なり XHTML なり) のレベルで正しくなっているかどうかから考えなきゃならないような感じがします.

mcse
質問者

お礼

たびたびのご回答、誠にありがとうございました。 とても参考になります。 HTMLの設定は、以下のように全てUTF-8にしています。 ------------------------------- sub HEADER { print "Content-type: text/html; charset=utf-8\n\n"; #print "Content-type:text/html\n\n"; print <<"EOF"; <HTML><HEAD> <TITLE>管理ページ - 基本設定</TITLE> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Style-Type" content="text/css"> <META http-equiv="imagetoolbar" content="no"> <META name="robots" content="none"> <META name="robots" content="noindex,nofollow"> <LINK rel="stylesheet" type="text/css" href="$css"> <SCRIPT Language="JavaScript"><!-- function clrinfo(){ window.open("./color.cgi","clrinfo","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=650,height=500") } //--></SCRIPT> </HEAD> <BODY topmargin="10" leftmargin="0" rightmargin="0" text="#333333" bgproperties="fixed"> ------------------------------- あと文字が化けて出てくる "$PAGETITLE" の記載してあるHTMLも、上記設定内に含まれているので、UTF-8の状態になっているはずです。 ------------------------------- <TABLE width="100%" border="0" cellspacing="0" cellpadding="0"><TR> <TD height="15"><HR width="100%" size="1" color="#cccccc"></TD> </TR></TABLE> <TABLE border="0" cellspacing="0" cellpadding="0"><TR> <TD height="30">最終更新日時 : <FONT class="g10pt" color="#003d84">$DATE_FOUNDATIONS</FONT></TD> </TR></TABLE> <TABLE border="0" cellspacing="1" cellpadding="4" bgcolor="#999999"><TR> <FORM name="SUBMIT" method="post" action="$cgi" onSubmit="return kakunin()"> <TD width="160" bgcolor="#eeeeee"> <TABLE border="0" cellspacing="0" cellpadding="1"><TR> <TD>ページタイトル</TD> </TR></TABLE> </TD> <TD width="400" bgcolor="#ffffff"> <TABLE border="0" cellspacing="0" cellpadding="1"><TR> <TD><INPUT type="text" name="PAGETITLE" size="60" value="$PAGETITLE"></TD> </TR></TABLE> </TD> </TR><TR> ------------------------------- あと一息だと思うんですが・・・

その他の回答 (11)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.12

なんか言葉が足らないんだよな~. 例えば #8 のお礼で 「Encode::decodeを試してみましたが、うまくいきませんでした。」 って書いてるけど, これであなたが「どのように試したのか」わかる人がいると思いますか? また, #10 の方でも 「はい、HTMLは確認しています。」 と書いてるけど, 具体的にどのように確認したの?

mcse
質問者

お礼

お礼遅くなりましてすみません。 ご返答ありがとうございました。 ご指摘の通り、言葉足らずでした。 以下のコードを入れてみましたが、ダメでした。 use Encode::Guess qw/ shiftjis euc-jp 7bit-jis /; use Encode qw/ decode /; $enc = guess_encoding ( $PAGETITLE ); if ( ref $enc ) { $utf8 = decode ( $enc->name , $PAGETITLE ); } htmlはコードの <META http-equiv="Content-Type" content="text/html; charset=utf-8"> とcharset=utf-8 に全て変えました。 またIE や Firefoxで確認しましたが、やはり文字化けしていました。 いろいろ試しても変わらないので、諦めようかとも考えてきました。

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.11

思うんだけど・・・無駄に複雑なもので検証してないです? ここまでごちゃごちゃになったら いっそすっきり単純化して ひとまず「正しく動くもの」を作れません? たとえば,ラジオボタンだけで 日本語の文字列を送って処理して出したり, hidden属性もでいいや,それとか POSTとGETを切り替えたり とにかく単純でロジックが簡単に追えるもの. いまのままだと URLエンコーデとPerlのencodeとかが ごっちゃごちゃになってませんか? あとは,吐き出したファイル(htmlの必要ないですよね,ひとまず)を エディタでみるんじゃなくて,バイナリエディタでみて コードそのものを確認するとかも必要かも そうすればブラウザやフォントの問題か否かもわかるのでは?

mcse
質問者

お礼

kabaokabaさま ご回答ありがとうございました。 単純化するというのは、非常に良いアイデアだと思いますので、週末にチャレンジしようと思います。 「バイナリエディタでみてコードそのものを確認する」ということに関して、よく分からなかったのですが、やった方がよさそうみたいなので、ネットで意味を調べて分析を頑張りたいと思います。 フォントというヒントを頂き、なるほど!と思って、cssファイルのフォントをSimsunからMSゴシックに変えてみました。 しかしながら、症状は同じで文字化けは引き続き発生しています。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.10

「実際に出力された (X)HTML」は確認してる?

mcse
質問者

お礼

またご回答頂きまして、ありがとうございました。 はい、HTMLは確認しています。 やはり、化けたままです・・・。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.8

Encode::decode?

mcse
質問者

お礼

ご回答ありがとうございました。 Encode::decodeを試してみましたが、うまくいきませんでした。 (私のやり方が悪かったのかもしれませんが・・・) なかなかの難問です(汗)

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.7

もう一度、確認させてください。 No.2の記述で、 # これはコメントアウト #binmode STDIN,":utf8"; というのも書いてますが、これもした上で文字化けをしているのでしょうか? URLエスケープされた文字列に対してutf8フラグが立っているように見えるんですよね。 していただくことをまとめると、 まず、以下をコメントアウト。 #binmode STDIN,":utf8"; そして、以下もコメントアウト。 #デコード処理 #&DECODE; さらに、以下の3行を追加。 sub REGIST { #全角英数字を半角に変換 $zenkaku = '0123456789'; $hankaku = '0123456789'; # ここに以下3行を追加 use Encode; use CGI; %in = map decode_utf8($_), CGI->new->Vars; $in{'PAGETITLE'} =~ s/\,/&%/g; $in{'PAGE1'} =~ s/\,//g;

mcse
質問者

お礼

度々のご回答、誠にありがとうございます。 はい、この通り行っても文字化けしています。 ファイルへ書き出す際に化けている気がしますが、 その原因が分からないので悲しいです。 どうか引き続きよろしくお願い致します。

mcse
質問者

補足

お世話になっております。 以下のサイトは、何か手掛かりにならないでしょうか? perlのUTF8プログラミングでのURLエンコード http://typeangler.net/?m=blog&eid=f02547e63ab646ccc4c916ad6f25cc89355c1901

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.6

前回の質問では、 stdio::getFormData(\%in,1,"sjis",1,",","$updir/"); との記述があったのですが、今回のコードにはこれはないのでしょうか? あればコメントアウトしてください。 できればエディタで、%inを検索して、%inの記述がある行を全て抽出お願いします。 文字の化け具合に関しての補足は、詳しい人が回答(解説)してくれかもしれませんので、文字化けが解消しても質問はオープンのままでお願いします(実は私も回答者というよりこのサイトで勉強しているので^^;)

mcse
質問者

お礼

ryu_chanさま ご回答ありがとうございました。 今回は、%in も stdio::getFormData(\%in,1,"sjis",1,",","$updir/"); も ない状態です。 ちょっと途方に暮れていますが、 もし、何かお気づきの点がありましたら、よろしくお願い致します。 m(_ _)m

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.5

#$in{'PAGETITLE'} =~ s/\,/&%/g; #$in{'PAGE1'} =~ s/\,//g; これらは代入でなく置換なのでコメントアウトする必要はないです。 推測で、 #デコード処理 &DECODE; ここの関数の中で、%inに代入しているのでしょう。 なので、この関数呼び出しをコメントアウトして、No.2の記述を追加すればどうなるでしょうか?

mcse
質問者

お礼

ryu_chanさま 丁寧なご回答、誠にありがとうございます。 #&DECODE;として、No.2の記述を記載しましたが、ダメでした。 No.4のTacosanさまのアドバイスに基づき、文字コードの化け具合を遅まきながら確認してみました。 問題のフォームに あ を入れると「あ」※ と出ます。 ※化けて表示される可能性もあるので、念のため化けた文字の説明も書いておきます。 ・aの上に波線がある文字 と □の中に小さな数字4つ入っており、 ・上二段が左から00 ・下二段は左から81 次の□の数字は ・上二段が左から00 ・下二段は左から82 と書いてありました。 いつも、上記の状態で文字化けします。 この文字を http://seo.atompro.net/webtoolfree_strcnvj_.html でescape変換すると、変換後の文字列は、 %E3%81%82 となりました。 さらにこの文字を http://seo.atompro.net/webtoolfree_strcnva_.html で 変換前:urldecode 変換後:sjis で変換すると、見事に あ の文字に戻りました。 ちょっと複雑な感じがしますが、 この情報を元に、改善策を練ることはできますでしょうか? 何卒よろしくお願い致します。 m(_ _)m

mcse
質問者

補足

ちなみにDECODE処理は以下の通りです。 #------------------------------------------------- # デコード処理 #------------------------------------------------- sub DECODE { if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});} else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name,$value) = split(/=/, $pair); $name2 = $name; $value2 = $value; $FORM2{$name} = $value; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; #半角カナを全角に変換 # Jcode::h2z_sjis(*value); #文字コード変換 # Jcode::convert(*value,'sjis'); $value =~ s/</&lt;/g; $value =~ s/>/&gt;/g; $value =~ s/\n/!%/g; $value =~ s/\r//g; $value =~ s/\t//g; $value =~ s/\,/&%/g; $value =~ s/&nbsp;/ /g; #フォーム変数へ $in{$name} = $value; } } よろしくお願い致します。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

「UTF-8で外部ファイルへ書き込めていない」と推測した根拠は? 「UTF-8 じゃない」としたら何で書き込まれている? 「具体的には、どうすれば良いでしょうか」って聞いてるけど, 「何を入力したら何が出てくるのか」はわかるはずだから, あとは文字コード表とにらめっこすればいいだけ. 「文字化けしてる」と思ったらこのくらいは考えていいんじゃない?

mcse
質問者

お礼

Tacosanさま ご指摘及びアドバイス、誠にありがとうございます。 基本的なところが抜けておりまして、誠に恥ずかしい限りです。 文字化けについて分析したところ、新たなことが分かりました! ※詳細はNo.5様のご回答のお礼に記述しました。 解決へ向けて一歩進めることができました!

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.3

回答側で動きもしないcgiのスクリプトをdebugする元気はないけど そもそも, cgiではない「普通のperl script」の段階で 日本語の入出力はできてるのですか? 日本語が書かれたファイルを読み込んで, 処理した後に また別ファイルに出力する ってことができてるんでしょうか? それができてるのであれば cgi特有の部分が問題だということになるのでは?

mcse
質問者

お礼

kabaokabaさま、ご回答ありがとうございました! 日本語が書かれたファイルを読み込んで, 処理した後にまた別ファイルに出力することはできています。 出力の際に、文字化けして書き込んでいる状況です。 cgi特有の部分というのは、具体的にどのあたりが怪しいと思われるのかアドバイス頂けると幸いです。 お手数おかけ致しますが、よろしくお願い致します。 m(_ _)m

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.2

コードを1つ1つ追跡すれば問題箇所が分かるかもしれませんが、もし%inに入っている値が全てフォームから来る文字列ならば、以前と同じようCGI.pmに丸投げしてみてはどうでしょうか? # これはコメントアウト #binmode STDIN,":utf8"; # %inに代入してるところを以下に変更 use Encode; use CGI; %in = map decode_utf8($_), CGI->new->Vars;

mcse
質問者

お礼

ryu_chanさま またご回答頂きまして、ありがとうございました! #binmode STDIN,":utf8"; として、 #$in{'PAGETITLE'} =~ s/\,/&%/g; #$in{'PAGE1'} =~ s/\,//g; #$in{'PAGE2'} =~ s/\,//g; #$in{'PAGE3'} =~ s/\,//g; #$in{'CATECOL'} =~ s/\,//g; #$in{'PERIOD'} =~ s/\,//g; #$in{'TABLECOL'} =~ s/\,//g; #$in{'SIZECOL'} =~ s/\,//g; #$in{'SIZEROW'} =~ s/\,//g; #$in{'COPYRIGHT'} =~ s/\,/&%/g; # %inに代入してるところを以下に変更 use Encode; use CGI; $in = map decode_utf8($_), CGI->new->Vars; と変更してみましたが、やはり症状は変わりませんでした。 上記変更方法が間違えているのでしょうか・・・・

関連するQ&A

  • tableにinclude fileを組み込んだら・・・

    <table cellspacing="0" cellpadding="0"> <tr> <td width="480"> <table width=470" cellspacing="0" cellpadding="0"> <tr> <td width="470">・・・・</td> </tr> </table> </td> </tr> </table> を <table cellspacing="0" cellpadding="0"> <tr> <td width="480"> <!--#include file="head.html"--> </td> </tr> </table> で head.html を <table width=470" cellspacing="0" cellpadding="0"> <tr> <td width="470">・・・・</td> </tr> </table> にした場合、中のtableの上下のスペースが異なってしまいます。 どなたか、解決方法を教えてください。

    • ベストアンサー
    • HTML
  • CGI Perl 画像の出し方

    <table border=1> <tr> <TD colspan="3"> <table width=100% cellpadding=0 cellspacing=0><tr> <TD colspan="2">$c_name[$seedno]</TD> </tr></table> </TD> </tr> <tr> <TD colspan="3" align="right"></TD> </tr> <tr> <TD nowrap colspan="3">$ap<br> $dp<br> </TD> </tr> </table> 今CGIを改造中なのですが 10行目の所に自作の画像を出したいのですがどうすれば良いのでしょうか?。 出す画像は、登録しているキャラ毎の画像を表示したいのです。 例えばAというキャラが出たらAキャラの画像、Bというキャラが出たらBキャラの画像という感じです。 上手く説明できませんが宜しくお願いします。

    • ベストアンサー
    • Perl
  • テーブル内のテーブルの高さを揃えたい。

    CGIの表示部分を改造中です。 下のソースをhtmlファイルにして見てもらったら判ると思うのですが、 <TABLE border="0"> <COL span="4" width="50"> <TR> <TD valign="top"> <TABLE border="0" cellpadding="0" cellspacing="1" bgcolor="#cccccc" height="100%"> <TR> <TD bgcolor="#ffffff">こんな風に</TD> </TR> </TABLE> </TD> <TD valign="top"> <TABLE border="0" cellpadding="0" cellspacing="1" bgcolor="#cccccc" height="100%"> <TR> <TD bgcolor="#ffffff">枠を置いたときに</TD> </TR> </TABLE> </TD> <TD valign="top"> <TABLE border="0" cellpadding="0" cellspacing="1" bgcolor="#cccccc" height="100%"> <TR> <TD bgcolor="#ffffff">100%のサイズ指定しても合わない高さを</TD> </TR> </TABLE> </TD> <TD valign="top"> <TABLE border="0" cellpadding="0" cellspacing="1" bgcolor="#cccccc" height="100%"> <TR> <TD bgcolor="#ffffff">ちゃんと揃えて配置したい</TD> </TR> </TABLE> </TD> </TR> </TABLE> 高さを100%にしても広がりませんでした。 どうにかして高さ(下の位置)を揃えることは出来ないでしょうか?

    • ベストアンサー
    • HTML
  • テーブル内いっぱいに

    comment: と txt box を配置したいのですが txt box が右側に小さく表示されます どうしたらいいでしょうか? <table width="100%" border="1" cellspacing="0" cellpadding="0"> <tr><td> <table width="100%" cellspacing="0" cellpadding="0"> <tr><td>comment:</td><td><input type="text" style="width:100%"/></td></tr> </table> </td></tr> </table>

    • ベストアンサー
    • HTML
  • 動く文字について

    以下のようなテーブルを作りたいと思っているのですが、borderを1にすると動く文字が表示されるのですが、0にすると表示されないんです。どうすれば動くようになりますか? <Table border="1" Width="666" Height="58" Cellspacing="0" Cellpadding="0"> <Tr> <Td RowSpan="2" Width="23%">1</Td> <Td> <MARQUEE scrollamount="1" scrolldelay="25" truespeed>123456789</MARQUEE> </Td> </Tr> <Tr> <Td> <MARQUEE scrollamount="1" scrolldelay="25" truespeed>987654321</MARQUEE> </Td> </Tr> </Table>

    • ベストアンサー
    • HTML
  • ヤフオクのテンプレートでバックグラウンドを使いたい

    今、オークション用のテンプレートを作ってるのですが、テーブルの背景に、 <table width="900" height="1000" border="0" cellspacing="0" cellpadding="0" background="http://000.com/000.png"> と言った感じで画像を背景に配置したいと考えていますが、どうやってもうまくいきません。 プレビュー表示の段階で、ソースコードを見てみたのですが、ちゃんと設定されているにもかかわらず、背景画像だけが表示されません。 別の方法で、 <div style="background-image:url(http://www.000.com/000.png);"> でも試して見ましたが、同じ結果でした。 背景画像の上に「商品説明」などの画像を重ねて配置したいので、どうにか上手くできる方法がありましたら是非教えて下さい。 ※上に重ねる画像だけが表示されます。 参考までに今編集中のソースを貼っておきます。 <center> <table width="900" height="1000" border="0" cellspacing="0" cellpadding="0" background="http://000.com/000.png"> <tr> <td align="center" valign="top"><br /> <center> <table width="650" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://000.com/001.png"></td> </tr> </table> <table width="650" border="0" cellspacing="0" cellpadding="5"> <tr> <td><font color="#a00e15"><p align="left"> 商品説明 </p></font></td> </tr> </table> <br /> <br /> <br /> <table width="650" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://000.com/002.png"></td> </tr> </table> <table width="650" border="0" cellspacing="0" cellpadding="5"> <tr> <td><font color="#a00e15"><p align="left"> 発送方法 </tr> </table> <br /> <br /> <br /> <table width="650" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://000.com/003.png"></td> </tr> </table> <table width="650" border="0" cellspacing="0" cellpadding="5"> <tr> <td><font color="#a00e15"><p align="left"> お支払い方法 </p></font></td> </tr> </table> <br /> <br /> <br /> <table width="650" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://000.com/004.png"></td> </tr> </table> <table width="650" border="0" cellspacing="0" cellpadding="5"> <tr> <td><font color="#a00e15"><p align="left"> 注意事項 </p></font></td> </tr> </table></td> </tr> </table> </center>

  • スタイルシートの書き方

    HPの中に以下のようなテーブルを並べて作っているのですが、後からまとめて編集しやすいようにCSSファイルを別に作ろうと思います。 自分であれこれ試してはいるのですが、スマートな(?)スタイルシートの書き方がいまいちわかりません。 どのように指定すればいいでしょうか? 因みに下のタグもかなり自己流な部分があるのではないかと思うので、おかしいところがあれば指摘してください。 よろしくお願いします。 ------------------------------------------------------ <table border="0" bgcolor="#000000" cellspacing="0" cellpadding="0"> <tr> <td> <table border="0" cellspacing="1" cellpadding="2" width="500"> <tr><td bgcolor="#ffffff" width="150">AAA</td><td>BBB</td></tr> </table> </td> </tr> </table>

    • ベストアンサー
    • CSS
  • tableをcssで表記したい

    下記のhtmlのスタイル部分をcssで表記したいのですが、 どのようにすればよいのでしょうか? tableの種類が一つの場合はできるのですが・・・ <table width="100" border="1" cellpadding="1" cellspacing="1" bgcolor="#AAAAAA"> <tr> <td width="30" bgcolor="#FFFFFF">a</td> <td ">b</td> </tr> </table> <br> <table width="50" border="2" cellpadding="2" cellspacing="2" bgcolor="#BBBBBB"> <tr> <td width="25" bgcolor="#CCCCCC">c</td> <td>d</td> </tr> </table>

  • テーブルの位置

    最初からテーブルを一番上に持ってくるにはどうしたら良いですか?CSSで設定するのでしょうか? 【】で囲ってある部分を最初から上にしたいのです。入れ子のようにしてテーブルを挿入すると必ず真中になってしまいます。 <table width=\"800\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" height=\"500\"> <tr bgcolor=\"#FFFF00\"> <td valigin=\"top\" valign=\"top\" colspan=\"4\" height=\"64\">  </tr> <tr> <td colspan=\"3\" height=\"2\">  </td> </tr> <tr> 【<td width=\"170\"> <table width=\"170\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td> </td> </tr> </table>】 </td> <td width=\"238\" height=\"352\"> </td> <td width=\"197\"> </td> </tr> <tr> <td colspan=\"3\"> </td> </tr> </table>

  • テーブルの作り方をご教示ください

    図のようなテーブルを作りたいのですがどうすればいいのかわかりません。 図はエクセルで書きました。 ----------------------------------------------- <table border=0 cellspacing=0 cellpadding=0> <tr> <td> <table border=0 bgcolor="#000000" cellspacing=1 cellpadding=1 width="230"> <tr bgcolor="#FFFFFF"> <td> 1 </td> </tr> <tr bgcolor="#FFFFFF"> <td> 2 </td> <tr bgcolor="#FFFFFF"> <td> 3 </td> </table> </td> </tr> </table> ----------------------------------------------- まではわかったのですが、 3と4を区切る方法がわかりません。 ご回答よろしくお願いします。

    • ベストアンサー
    • HTML