2バイトで作成されたフォルダ名(漢字やひらがななど)を、
ブラウザにツリー表示して、それがクリックされた時に
クリックされたフォルダ名を取得して、
ブラウザがそのフォルダ先を参照し、
フォルダ中のファイル名をブラウザ上に表示できるようにしています。
$_GETを用いて、フォルダ名を取得しているのですが、
2バイトのフォルダ名だと、中身がどうやらバケています。
フォルダ名が英数半角の時は、上手く処理されるのですが、
漢字やひらがななどの2バイトのフォルダ名だと、
どうしても上手くいきません。
エンコードのurlencode()関数やデコードのurldecode()関数
を用いて、いろいろやってみましたが、上手く変換してくれません。
URLと違って、パス名、フォルダ名なので、2バイトだとそもそも
$_GETで取得すること自体が無理なのでしょうか?
どなたか詳しい方、ご教授いただけると幸いです。
よろしくお願い致します。
No.2
- 回答日時:
$_GETで取得ということはもしかして
<A href="xxx.php?name=日本語フォルダ名">
ということでしょうか。
だとしたら先にこのリンクを表示する時点で
urlencodeしておかなければいけません。
あとはphp.iniのマルチバイト関連の設定を見直す。
この回答への補足
試行錯誤してみていますが、どうも上手く行きません。
もし、おわかりになるようであれば、ご教授下さいませ。m(__)m
ブラウザに表示させてあるフォルダ名をクリックしたときに、
xxx.php?name=/%u65B0%u30FBmicro;%u30FBcent;%u30D5%u30A9%u30EB%u30C0
のような感じで送信されているようで、$_GETで取得しても、
バケてしまって、正しいフォルダ先に飛んでくれないのです。
例えば、
新しいフォルダ
という名称のフォルダだと、
/%u65B0%u30FBmicro;%u30FBcent;%u30D5%u30A9%u30EB%u30C0
のようにバケます。
(一番最初の'/'はaddslashesでバックスラッシュを挿入しています)
また、
XYZ新しいフォルダ
という名称のフォルダだと、
/XYZ%u65B0%u30FBmicro;%u30FBcent;%u30D5%u30A9%u30EB%u30C0
のように、最初の半角英字(XYZ)は正しく取得されますが、
その後の2バイト文字は、同様にバケます。
以下、php.iniの関連しそうなところの設定を抜き出してみました。
[mbstring]
; language for internal character representation.
mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP
;mbstring.internal_encoding = SJIS
; http input encoding.
;mbstring.http_input = auto
mbstring.http_input = ASCII,JIS,EUC-JP,SJIS
; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS
mbstring.http_output = EUC-JP
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
mbstring.encoding_translation = Off
;mbstring.encoding_translation = On
; automatic encoding detection order.
; auto means
;mbstring.detect_order = auto
mbstring.detect_order = ASCII,JIS,EUC-JP,SJIS
; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Windows 10 ファイルエクスプローラーでフォルダを閉じる操作について 2 2022/10/15 11:06
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
i18n_convert と mb_convert_e...
-
onedrive にexcelファイルをア...
-
PEARのmimeDecodeでメール解析...
-
拡張子php画像をjpg画像等に変...
-
フォームで戻った際に入力済み...
-
2つの画像ファイルが異なるファ...
-
PHP フォルダ名やファイル名に0...
-
form actionで二つ送信先を指定...
-
さくらサーバーにて、phpからメ...
-
mysql複数レコードをまとめて削...
-
WordPressでテーマのヘッダー画...
-
日本語ファイル名のアップロー...
-
フォントの色を変えるには?
-
こちらはただの直列処理ですか?
-
.htaccessにphp_valueが使用できな
-
VBでクラウドストレージにア...
-
libphp5.so がないと?
-
php、JDライブラリを用いて画像...
-
PHPでxmlをAPIに送信する方法(P...
-
phpinfoとphp -vのバージョンが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エンコーディングについて
-
phpのhex2binについてphpで、ut...
-
ハシゴの「高」が「?」に置き...
-
PHPでCSV出力時の文字化け(一部)
-
$str=preg_replace('/\\u3000/'...
-
PHPの文字化けした文字だけ削除...
-
phpMyAdminで文字化け
-
【PHP】ファイル読み込みで...
-
MySQL文字コード
-
windowsXP、XAMPPでメーラーMer...
-
i18n_convert と mb_convert_e...
-
データベースから取り出した日...
-
scandir関数取得結果の文字化け
-
PHPフォーム→PHP確認画面で...
-
文字化け
-
header("location~")をPOSTで...
-
PHPExcelで日本語(漢字)ファ...
-
mysql utf8、php・euc-jp で出...
-
PHPの文字コード (php.iniの...
-
XML出力時の日本語一部文字化け
おすすめ情報