※ ChatGPTを利用し、要約された質問です(原文:phpでCSS対応させ文字コードを変更する方法)
phpでCSS対応させ文字コードを変更する方法
このQ&Aのポイント
phpでi-mode対応CSSを使用し、EUCのMySQLデータをShift-JISで表示する方法について紹介します。
この記事では、.htaccessファイルを使用してphpの文字コードを変更する方法と、i-mode用のCSSを適用する方法について説明します。
また、header関数を使用してContent-Typeを設定する際の注意点も解説します。
phpで、i-mode対応CSSを使用し、EUCのMySQLのデータをShift-JISで表示させたい、というものです。
.htaccess 内で、
php_flag output_buffering On
php_value output_handler mb_output_handler
php_value default_charset Shift_JIS
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.substitute_character none
php_value mbstring.script_encoding auto
という記述を入れています。
Shift-JISの***.phpで、DBの内容を正しく表示することができています。
CSSに対応させるために、phpファイル内で、
HTTP_USER_AGENT が docomoの場合のみ
header("Content-Type:application/xhtml+xml");
...
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.0) 1.0//EN" "i-xhtml_4ja_10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">.....
という記述をして、CSSを使用したいのですが
上記の.htaccess を入れると、CSSは使用できても、文字化けしてしまいます。
.htaccess での文字コードの変換と
header("Content-Type:application/xhtml+xml");
を同時に使っているのが原因かと思うのですが、解決方法がわかりません。
テンプレートや関数で変換する方法しかないでしょうか。
解決方法をご存知でしたらお教えください。よろしくお願いします。
お礼
やはり、mb_convert_encoding()ですか.... ありがとうございました!