PHPでUTF-8の文字列をURLエンコードするとき

結果の文字列の大文字小文字の制御はできますでしょうか
 
UTF-8文字列 ” abcテストabc ” をURLエンコードした場合
 
私の環境ですと このようになってしまいますが、
abc%e3%83%86%e3%82%b9%e3%83%88abc
 
このように
abc%E3%83%86%E3%82%B9%E3%83%88abc
エンコードされた部分が大文字になるよう
結果を得たいです
 

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/08/22 16:58:41
  • 終了:2008/08/22 18:56:04

ベストアンサー

id:GoldenDawn No.2

GoldenDawn回答回数426ベストアンサー獲得回数812008/08/22 18:37:44

ポイント70pt

当方のローカル環境では urlencode でお望みの結果が得られていますが、

あえてやるなら

<?php
$str = 'abcテストabc' ;
$url = urlencode($str) ;
$url = preg_replace('/(%[\da-f]{2})/e', "strtoupper('$1');", $url) ;
echo $url
?>

http://q.hatena.ne.jp/

id:ken1bf7

GoldenDawnさん~

ありがとうございます。そのほうほうでできたっぽいです。

大文字を小文字への場合は [\da-f] の部分を [\dA-F]ですね~

ありがとうございます。

2008/08/22 18:55:44

その他の回答(1件)

id:humiya_r No.1

humiya_r回答回数23ベストアンサー獲得回数02008/08/22 17:29:20

単純に

$str = 'abcテストabc';

$str = strtoupper(mb_convert_encoding($str,"UTF-8","auto"));

ではだめ?

http://phpspot.net/php/pg%91%E5%95%B6%8E%9A%81A%8F%AC%95%B6%8E%9...

id:ken1bf7

ABCが大文字になってしまうではないですか

解決できません

2008/08/22 17:34:58
id:GoldenDawn No.2

GoldenDawn回答回数426ベストアンサー獲得回数812008/08/22 18:37:44ここでベストアンサー

ポイント70pt

当方のローカル環境では urlencode でお望みの結果が得られていますが、

あえてやるなら

<?php
$str = 'abcテストabc' ;
$url = urlencode($str) ;
$url = preg_replace('/(%[\da-f]{2})/e', "strtoupper('$1');", $url) ;
echo $url
?>

http://q.hatena.ne.jp/

id:ken1bf7

GoldenDawnさん~

ありがとうございます。そのほうほうでできたっぽいです。

大文字を小文字への場合は [\da-f] の部分を [\dA-F]ですね~

ありがとうございます。

2008/08/22 18:55:44

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません