質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2026閲覧

PHP5.5 ビルドインサーバでcharset=Shift-JISで送れない

darum

総合スコア70

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/12/09 06:49

編集2017/12/10 00:07

環境:
phpinfo() より

PHP5.5.38

System Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
Configure Command './configure' '--with-mysql' '--enable-mbstring'
default_charset Shift_JIS Shift_JIS

既存システム(文字コード=Shift-JISで作られている)の解析用に、
ビルトインサーバで実行させてみようと思い環境を立ち上げていますが、
上記のような環境になるindex.html をブラウザで見ると文字化けします。

ブラウザの開発ツールを見ると
Content-Type: text/html; charset=UTF-8
となっているのですが、何か設定が不足していますでしょうか?

**の情報を確認してみろ。といったアドバイスでもお待ちしております。
よろしくお願いいたします。

curlの結果は以下の通りです。

$ curl --dump-header - http://localhost:8000/index.html HTTP/1.1 200 OK Host: localhost:8000 Connection: close Content-Type: text/html; charset=UTF-8 Content-Length: 54

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/09 07:31

METAの?それともレスポンスヘッダーの?
darum

2017/12/10 00:06 編集

REsponse Header の話になります。 curlで 取得した結果以下のような感じです取得した結果以下のような感じです > $ curl --dump-header - http://localhost:8000/index.html HTTP/1.1 200 OK Host: localhost:8000 Connection: close Content-Type: text/html; charset=UTF-8 Content-Length: 54 もちろん?htmlにmetaタグなんて付いてません。
退会済みユーザー

退会済みユーザー

2017/12/10 03:45

既存システムのほうとPHPのバージョンはあってるのかしら?
darum

2017/12/10 05:57

既存システムとはバージョンが異なります(5.3.?? 詳細今わからないです。。。)が、それって本件と関係ありますでしょうか?
退会済みユーザー

退会済みユーザー

2017/12/10 06:17

「既存システムの解析用」なんでモジュールの不具合対応やバージョンアップで修正したけど動かなかったはよくあることですから。
darum

2017/12/12 08:59

機能以前に文字化けなので・・・
guest

回答2

0

PHP5.6以上(PHP7含む)でShift_JIS、EUCのPHPファイルが文字化けする

という記事があったので中で 5.5以下(5.5 or 5.4)に変更する案が出てます
が今回の質問は 5.5 なので php.ini がいろいろと改造されていると思われます。

今回の場合は既存システムの検証目的なので
PHP+APACHE2等 同一編成で行うべき内容です。

ダウンロードは archiveから

また、php.ini があればおかしい場所がわかる可能性があります。
※ 内部コメントは削除すれば質問を編集であげれるはず

投稿2017/12/10 06:27

編集2017/12/12 10:11
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

darum

2017/12/12 08:58

php.iniを下記に示します。 $ egrep -v '^;|^$' php.ini [PHP] engine = On short_open_tag = Off asp_tags = Off precision = 14 output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off unserialize_callback_func = serialize_precision = 17 disable_functions = disable_classes = zend.enable_gc = On expose_php = On max_execution_time = 30 max_input_time = 60 memory_limit = 128M error_reporting = E_ALL display_errors = On display_startup_errors = On log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = On html_errors = On variables_order = "GPCS" request_order = "GP" register_argc_argv = Off auto_globals_jit = On post_max_size = 8M auto_prepend_file = auto_append_file = default_mimetype = "text/html" default_charset = "Shift_JIS" doc_root = user_dir = enable_dl = Off file_uploads = On upload_max_filesize = 2M max_file_uploads = 20 allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [CLI Server] cli_server.color = On [Date] date.timezone = 'Asia/Tokyo' [filter] [iconv] [intl] [sqlite] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size = 2000 pdo_mysql.default_socket= [Phar] [mail function] SMTP = localhost smtp_port = 25 mail.add_x_header = On [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [Interbase] ibase.allow_persistent = 1 ibase.max_persistent = -1 ibase.max_links = -1 ibase.timestampformat = "%Y-%m-%d %H:%M:%S" ibase.dateformat = "%Y-%m-%d" ibase.timeformat = "%H:%M:%S" [MySQL] mysql.allow_local_infile = On mysql.allow_persistent = On mysql.cache_size = 2000 mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 mysqli.allow_persistent = On mysqli.max_links = -1 mysqli.cache_size = 2000 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = On [OCI8] [PostgreSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [browscap] [Session] session.save_handler = files session.use_strict_mode = 0 session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.referer_check = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatibility_mode = Off mssql.secure_connection = Off [Assertion] [COM] [mbstring] [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400 soap.wsdl_cache_limit = 5 [sysvshm] [ldap] ldap.max_links = -1 [mcrypt] [dba] [opcache] [curl] 残念ながら5.3はダウンロード不可であったり、WIndowsサーバが用意できないなどあるため 同一環境では難しい状況であったりします
guest

0

自己解決

根本的な解決はできていないですが、
・SJISの.htmlは文字化けする
・SJISの.phpは正しく解釈され、正しく結果を表示する
・UTF-8の.phpも正しく解釈され、正しく結果を表示する
というところまでわかりました。

投稿2018/02/21 04:15

darum

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問