※ ChatGPTを利用し、要約された質問です(原文:エンコードについて質問します。)
エンコードについて質問!文字化けが直らない!
このQ&Aのポイント
質問文章:エンコードについて質問します。どうしても文字化けが直りません。ネットで色々検索して端から試してみましたが駄目でした。どなたか、アドバイスいただければと思います。
phpの設定はいじれず、基本エンコードは[EUC-JP]です。ソースファイルはUTF-8で扱っているんですが送信するとEUC-JPにエンコードが変わってしまいます。そこで、、
$_GETSTRINGCODE = "EUC-JP";
$_THISFILESTRING_UTF8 = "UTF-8";
$_MYGET = "";
foreach($_GET as $key=>$var) {
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $key);
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $var);
$_MYGET[$key] = $var;
}
これで変換しなおしています。
アドバイスをいただきたいと思います。
どうしても文字化けが直りません。。
ネットで色々検索して端から試してみましたが駄目でした。
どなたか、アドバイスいただければと思います。
phpの設定はいじれず、基本エンコードは[EUC-JP]です。
ソースファイルはUTF-8で扱っているんですが送信するとEUC-JPにエンコードが変わってしまいます。
そこで、、
$_GETSTRINGCODE = "EUC-JP";
$_THISFILESTRING_UTF8 = "UTF-8";
$_MYGET = "";
foreach($_GET as $key=>$var) {
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $key);
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $var);
$_MYGET[$key] = $var;
}
これで変換しなおしています。
GETで送信しているのはjavascriptによりポップアップで開くフォームだからです。
送信元
<script type="text/javascript">
function window_open()
{
query_string = 'jump.php?'; // これはGETパラメータ作成する為の変数
query_array = []; // 配列
$("input[type='checkbox']:checked").each(function(){
query_array.push($(this).attr('name')+"="+unescape( $(this).val()) );
});
query_string+= query_array.join('&');
//alert(query_string);
var opener = window.open(query_string,'_blank','width=840,height=580,scrollbars=yes');
return false;
}
</script>
<form action="#" method="post" name="fdata" id="fdata">
<tr>
<td>2003</td>
<td>増刊号</td>
<td>テスト</td>
<td> </td>
<td><input type="checkbox" name="review[増刊号]" value="2003" /></td>
</tr>
</form>
送信先
$_GETSTRINGCODE = "EUC-JP";
$_THISFILESTRING_UTF8 = "UTF-8";
$_MYGET = "";
foreach($_GET as $key=>$var) {
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $key);
mb_convert_variables($_THISFILESTRING_UTF8, $_GETSTRINGCODE, $var);
$_MYGET[$key] = $var;
}
<textarea name="号" ><?php if(!empty($_MYGET)):
foreach( $_MYGET['review'] as $key=>$var ):
list($review_nengou,$review_title) = explode('__',$var);
echo "・" . stripslashes($key) . $review_title . $review_nengou . "\r\n";
endforeach;
endif;
?>
</textarea>
valueで送信した値は文字化けが直るんですがname属性の全角が化けます。
次のページのテキストエリアにチェックした内容が入るような仕様です。
大変困っています。
アドバイスいただけたら助かります。
よろしくお願いいたします。
お礼
アドバイスいただきありがとうございました♪ 実はかなりいじりづらい部分でしたので補足の部分の修正が難しく、現状で修正を行わなければなりませんでした。 何とかクリアできたので参考までにソースを張っておきますね。 アドバイスいただきありがとうございました! header("Content-Type: text/html; charset=UTF-8"); require_once('include/header.php'); mb_language("ja"); $_GETSTRINGCODE = "EUC-JP"; $_THISFILESTRING = "UTF-8"; $_MYGET = ""; foreach($_GET as $key=>$var) { if( is_array( $var ) ){ $tmp = null; foreach( $var as $kk => $vv ){ mb_convert_variables($_THISFILESTRING, $_GETSTRINGCODE, $kk); mb_convert_variables($_THISFILESTRING, $_GETSTRINGCODE, $vv); $tmp[$kk] = $vv; } }else{ mb_convert_variables($_THISFILESTRING, $_GETSTRINGCODE, $var); $tmp = $var; } mb_convert_variables($_THISFILESTRING, $_GETSTRINGCODE, $key); $var = $tmp; $_MYGET[$key] = $var; }