[PHP-users 15268]Re: 文字コード変更?

GT perl @ getpresent.com
2003年 5月 14日 (水) 13:43:27 JST


GTと申します。

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


ご指摘ありがとうございます。
質問する際の情報が少なかった事をお詫びいたします。

今後はできる限りの情報を記入しようとおもいます。

>> ちなみに sjis で書いているのですが
>> euc にしなくてはダメなのでしょうか?
> 
> 逆説的にいえば、EUC だと問題ないとわかっているのに、
> 何故 SJIS で書くのですか、という質問もありませんか?
> 
> SJIS で書くには、「条件」があるのですが、それはクリアしていますか?
> 
>> フォームからの値を下記のようにしても
>> どうしても思い通りに動作してくれません。
> 
> 思い通りとは、どういう思いで、動作しないとは、どういう状態ですか?
> 
> 例えば、今回だと、$k に入れた内容、そして、出力された文字列くらいは
> 添えて、どういう結果を期待して、どういう結果になって、
> その原因は自分では何にあると思うのか、くらいは書いたほうが良いと
> おもいますし、他にも、マルチバイト周りの設定、インストール時の
> オプション、その他、必要な情報がかなり抜け落ちている気もします。
> 
> 以下、質問の書き方、例。(勝手にいろいろ推測してます。)
> 
> ○○の GT と申します。こんにちは。
> 
> %XX%XX という % の後に 16 進数が続く表記に変換する操作が
> URL エンコードという処理であることを知ることができ、
> PHP では、urlencode() を使用することがわかりました。
> 
> そこで、動作を確認のために、以下のようなスクリプトを書きました。
> %XX%XX%XX という結果を期待するのですが、私の環境では、
> %ZZ%ZZ%ZZ となります。
> # Perl では、%XX%XX%XX となりましたので、これが正常と判断しました。
> 
> <?php
> $k = "表示のテスト";
> $k = mb_convert_encoding($k, "EUC-JP");
> $k = urlencode($k);
> print $k;
> ?>
> 
> なお、スクリプトの文字コードは、Shift_JIS です。
> デザインはデザイナーが行っており、作業の連携の関係で、
> スクリプトは、SJIS で記述しなければなりません。
> 
> Google で XXX というキーワードで調べ、以下のようなページを見つけて、
> 原因は、漢字コードの認識にあるのではないかと思い、
> 設定を確認したのですが、特に問題があるとは思えません?> 
> $k = mb_convert_encoding($k, "EUC-JP", "SJIS");
> 
> とコードを明示しても、やはりうまくいきません。
> よって、コードの自動認識の問題ではないようです。

$k = mb_convert_encoding($k, "EUC-JP", "SJIS");
の「"SJIS"」の部分は省略できると書籍で見たので
一度も試すことをしておりませんでした。

文字数が少ないとダメということを知りませんでした。

文字コードの問題だとは感じていたのですが、
数日前にphpをさわり始めたばかりでして
文字コード以前の問題でコード自体に問題があるのかと
思っておりました。

レンタルサーバーなのですが
phpinfo() で表示される内容もまだほとんど理解しておりません。
今後はこちらも勉強していこうと思います。

> 私の環境:
> PHP 4.3.1, DSO としてインストール
> インストール時のコンパイルオプション
> ./confiure --hogehoge --ugeuge
> OS は VineLinux 2.6 FTP, intel 版 (apt で最新版に自動更新)
> uname -a の結果とかも書くとよいかも
> Apache は 1.3.X でソースからコンパイルしました。
> 私の設定内容:
> mb_関連を phpinfo() の結果から抜粋して書く
> 
> 過去のメッセージも「○ ×」などのキーワードで検索したのですが、
> 同様と思えるものがありませんでした。
> 
> この問題について、情報をお持ちの方がいらっしゃいましたら、
> アドバイスをいただければ幸いです。

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





PHP-users メーリングリストの案内