• ベストアンサー

一部文字が使えない

WinXP上でApache2.2.14、PHP5.2を使用して勉強中です。 下記の状況で、表示されるウェブページが真っ白になるという問題が発生しています。 解決方法をご存じの方がおられましたら教えて頂けないでしょうか。 ・関数(引数は参照渡し)内で引数の配列にarray()を使用して"機能"を含む4つの文字列をセットする。 ・プルダウン形式のセレクトボックスの項目として、上記関数によりデータをセットされた配列の要素を全てセットする。 上記の処理を含むページを閲覧しようとすると、空白のページとなる。(ソースを見たところ、<body></body>のように中身が空のページだった) 補足情報 ・"機能 "のように最後に半角スペースを入れると正常に表示された。 ・"○○機能"のような文字列でも同様の問題が発生した。 ・"機能"を含まない文字列では今のところ同様の問題は発生していない。(想定通りのページが表示される。) とりあえず"機能 "のように最後に半角スペースを入れて誤魔化しているのですが、原因が分からないため、 まだ見つかっていないだけで他の文字列でも問題が発生するのではないか? その時同じ方法で対応できるとは限らないのではないか? と考えて今回投稿しました。 質問内容に情報不足や勘違いなど不備がありましたら指摘していただけると助かります。 よろしくお願い致します。

  • d_g
  • お礼率88% (22/25)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

それは「能」が945Cだからです。いわゆる5C問題ですね。 magic_quotes_gpcで調整したりすることもできないことはないですが 本質的にはshift-jisをつかうのをやめることをお勧めします。 http://www.php.net/manual/ja/info.configuration.php#ini.magic-quotes-gpc

d_g
質問者

お礼

magic_quotes_gpcというものがあるのですね。 教えて頂いた通り、shift-jis以外にする方向でいきたいと思います。 ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

全角文字は2バイトで構成されてますが、2バイト目が 5c だと問題を起こします。(5c=\です) ほかに「表」も危ない。 キーワード「文字化け 5c 表」で検索してください。 参考サイトがたくさん見つかります。

d_g
質問者

お礼

分かりやすい説明ありがとうございます。 原因を理解できました。

関連するQ&A

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • 半角スペースを含む文字列を変数にセット可能?

    以下のような、画像を読み込む関数を定義します。 function changePhoto(OBJname, image) { document.images[OBJname].src=image; } これを onClick=changePhoto('Photo316','abc xyz.jpg') のように、引数に半角スペースを含む文字列で呼び出すと、エラーになってしまいます。 abc_xyz.jpgであれば問題ありません。 半角スペースは渡せないのでしょうか? よろしくお願いします。

  • 【C言語教えて下さい!】文字検索

    引数として、複数の文字列を格納した配列、その文字列数、あるいは文字列aを与え、aが複数の文字列を格納した配列中に見つかれば1を返し、見つからなければ0を返す関数find_string()をつくりたいのですがよくわかりません。 どなたかご教授お願いします。 ヒントや考え方など教えて下さい。

  • 文字を逆順に表示の関数?

    ちょっと暗号化みたいなことをしたいのですが; セルを引数にすると、そのセル内の文字を最後の文字から逆順に表示するようなエクセルの機能とか、関数とかありますか?

  • 文字列の部分読み込み

    C言語によるプログラムを勉強中なのですが、分からないことがあるので質問させてください。 「fgets」を用いてファイルから一行分の文字列を読み込んだのですが、この文字列の○文字目から×文字目を読み込む関数などはあるのでしょうか? もし無ければ、どのようにしたら読み込めるのでしょうか? 読み込んだ文字列は □□□□1234□□□5678□□abcd のようなもので、□は半角のスペースです。 区切り文字などが無く、先頭の半角スペース部分に文字が入る場合もあるので、○文字目から×文字目のように指定したいと思っています。 初心者で申し訳ありませんが、よろしくお願いいたします。

  • 文字列内の記号、スペースなどを削除する方法

    エクセル2000 OS:WinXPpro 本人の技量レベル:VBAはコピペして実行しても、修正が出来ないので、なるべく関数で処理したい。 半角カタカナ英数だけの文字列を作りたいのです。 元のデータには()などの記号、句読点、スペース等が含まれています。 一応TRIM関数で余分なスペースは削除しましたが文字列中の半角スペースが残っています。 これを半角カタカナ英数だけを残してベタの文字列にしたいのです。

  • エクセル関数で文字列の中のスペースの有無を調べたい。

    エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認)     *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無        *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか      *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。

  • 文字列を分割したい。

    (A1)のセルにある文字列は、数個の文字列をスペース(半角)を開けて配置しています。 (2行目以下も同様の多種の文字列があります。) サンプル 「学校 東京 神奈川県横浜市 ABC アメリカ」 これを、 1行目のセルに関数を用いて、 (B1)に「学校」 (C1)に「東京」 (D1)に「神奈川県横浜市」 (E1)に「ABC」 (F1)に「アメリカ」 と表示したいのです。 関数で処理できましたら、その関数式を教えてください。 関数で処理できない場合は、マクロを教えていただければありがたいです。 よろしくお願いします。 ※エクセルの「区切り位置]機能を試しましたが、うまくいかないようです。

  • 全角・半角混在の文字列から半角文字のみ取り出す

    エクセル勉強中です。問題集で理解できないところがあります。 数式がどういう意味をもつのか教えて頂けるとありがたいです。 よろしくお願いします。 画像添付の問題になります。 A列に製品名が入っています。(製品番号:半角文字)(製品名:全角文字) B列に半角文字の製品番号だけを取り出しなさいというものです。 半角文字の開始位置がバラバラになっているところが問題のポイントになっています。 回答ですが B2: =MID(A2,MATCH(1,INDEX(LENB(MID(A2,COLUMN(2:2),1))*1,0),),LEN(A2)*2-LENB(A2)) こちらで半角文字のみ取り出せるようです。回答には数式のみで何故この関数を使うのか? 使うことでどういった結果を導くなどの解説が一切ありません。(ちなみに出版会社の便利技的な問題集です) MID関数で製品名A2から開始位置を指定して、全角半角をLEN関数LENB関数で半角文字数を 算出して文字列を抽出するという事は理解できます。 ただ、この開始位置の指定の所が理解できません。 数式を分割してみましたが =MID(A2,COLUMN(2:2),1)の所はどの行も製品名の1文字目ですよね・・・ その値にLENB関数で文字数? 数式の検証で見てみると配列のような結果が次々と現れて・・・ MATCH関数もありますしINDEX関数が何か関係しているような気はしているのですが、 INDEX関数と言えば配列に行番号・列番号と例えば表の該当するセルの位置抽出の 知識しかありません。一つのセルでINDEX関数? すいません。独学で勉強していてこの程度の知識ですが、この数式の考え方教えてくださる方よろしくお願いします。

  • エクセル2000での質問-1つのセルに入っている文字列の中から特定の文字の個数を調べるには

    例えばセルA1に「あい1うえ 1おかき11123くけこ」と入っているとします。 その中から、 (半角スペース)あるいは文字列が何個入っているのかを返す関数と言う物は有るのでしょうか?この例の場合半角スペースなら1、数字の1なら5という要領です。