[pgsql-jp: 31394] Re: 「表」が文字列の最後にある場合エラー

Hiroshi Ishiura issy777 @ entrance-e.com
2003年 10月 31日 (金) 16:42:59 JST


石浦です。

> 大場です。
> 
> #ほとんどPHPのMLで話すような内容ですね
> 
> In message "[pgsql-jp: 31385] 「表」が文字列の最後にある場合エラー",
> Hiroshi Ishiura wrote,
> 
> >SQLで「表」の字が最後に入っている文字列の場合
> >Warning: pg_exec(): Query failed: ERROR: parser: parse error at or near "〜
> >発表" at character 112〜〜
> >とエラーが起きてしまいます。
> 
> おそらく「\」問題でしょう、多分。

はい。
> 
> >環境は、
> >PHP-4.3.2
> >magic_quotes_gpc Off
> >mbstring.detect_order auto
> >mbstring.encoding_translation On
> >mbstring.func_overload 0
> >mbstring.http_input auto
> >mbstring.http_output SJIS
> >mbstring.internal_encoding SJIS
> >mbstring.language Japanese
> >mbstring.script_encoding no value
> >mbstring.substitute_character no value 
> 
> #WindowsだったらSJISでもいいのかもしれないけど
> #質問にOSが何か書いてないんだけど…

すいません。Redhat7.2でlinuxです。
> 
> サーバがLinuxやFreeBSDだったら、
> 普通「mbstring.internal_encoding EUC-JP」でしょう。
> それにスクリプトにSJIS使うなら
> それが可能になったバージョンのPHPを使って
> それなりの設定でコンパイルして
> 「mbstring.script_encoding」も設定しないと
> 普通は使えないでしょう。
> 
> #たまたま、問題の無い文字だけだったから
> #正常に動いてるように見えるだけでは?
> 
> 
> >EUCで書けばこういう問題はおきないかと思いますが今からソースをEUCに
> >全部変更するのは厳しい状況で。。
> 
> 文字コードの変換だったら
> nkfかqkcで一発変換できそうだけど…

nkfとかで変換してもいいのですが、METAタグとかで全部文字コードを指定
したりしてるので、変更するならDreamweaverなりで一気に変更します。
> 
> でもEUCにしたって、今の設定の
> 「mbstring.internal_encoding SJIS」でまともに動くかな?
> 
> じゃなかったら、SJISスクリプトをつかうために
> できるようになった最近のバージョンのPHPで
> 
> #多分4.3.2は可能になったバージョンだと思うけど
> 
> それなりのオプション付けた./configureとコンパイルして
> PHPを入れ替えて、適合するようなphp.iniの設定をしたら
> SJISなスクリプトもおそらく問題なく使えるはずです。

mbstring.script_encodingなど設定をかえてみたんですが、あまり変化ありませ
んでした。
とりあえずご指摘のとおりSJISだと何かと問題がでてくるのでタイミングを見計
らってEUCに変換しようと思います。
ありがとうございました。
> 
> が、静的なWebコンテンツがSJISでもいいのは、
> htmlの解釈はブラウザがやってるからで
> (サーバは単なる置き場と思えば)
> まぁ、unix系のOS上でプログラム的に何かしようとすると
> SJISはロクなことはないのは事前に調べたら分かるので
> 使わないことが一番です。
> 
> ------------------------------------------------
> Name: 大場正志(Masashi Ohba)
> E-mail: ohba @ imr.tohoku.ac.jp
> 東北大学 金属材料研究所

-- 
Hiroshi Ishiura <issy777 @ entrance-e.com>





pgsql-jp メーリングリストの案内