人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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
エンコードされた部分が大文字になるよう
結果を得たいです


●質問者: ken1bf7
●カテゴリ:インターネット ウェブ制作
✍キーワード:ABC E3 PHP URL UTF-8
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● humiya_r
●0ポイント

単純に

$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...

◎質問者からの返答

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

解決できません


2 ● GoldenDawn
●70ポイント ベストアンサー

当方のローカル環境では 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/

◎質問者からの返答

GoldenDawnさん?

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

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

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ