###前提・実現したいこと
PHP7(Laravel5.2)で画像ファイルのアップロードと日本語テキストをPOSTしています。
コントローラでリクエストの中の文字列を取得したところ文字化けしているので、対処方法・確認項目を教えていただきたいです。
###発生している問題・エラーメッセージ
送信したテキストが文字化け(è¯ãã£ãç¹ã®è¿½å
)しています。
mb_get_info()
の結果は
json
1{ 2 internal_encoding: "UTF-8", 3 http_input: "ASCII", 4 http_output: "UTF-8", 5 http_output_conv_mimetypes: "^(text/|application/xhtml\+xml)", 6 func_overload: 0, 7 func_overload_list: "no overload", 8 mail_charset: "ISO-2022-JP", 9 mail_header_encoding: "BASE64", 10 mail_body_encoding: "7bit", 11 illegal_chars: 0, 12 encoding_translation: "On", 13 language: "Japanese", 14 detect_order: [ 15 "UTF-8", 16 "SJIS", 17 "JIS", 18 "ASCII" 19 ], 20 substitute_character: 63, 21 strict_detection: "Off" 22}
を返します。
mb_convert_encoding($input['caption'], 'UTF-8', 'ASCII');
によって返ってくる結果はè¯ãÂÂã£ãÂÂç¹ã®追åÂÂ
となりました。
###ソースコード
FORMのaccept-charset
には"UTF-8"
を指定。
html
1<form method="POST" action="http://localhost/test/test" accept-charset="UTF-8" enctype="multipart/form-data"> 2<input type="submit" value="送信"> 3<div> 4 <h4>写真</h4> 5 <ul> 6 <li><input name="photo" type="file"><input name="caption" type="text" value="キャプション"></li> 7 </ul> 8</div> 9</form>
コントローラはリクエストから取得したものをそのまま返す。
php
1public function store(Request $request) 2{ 3 $input = $request->input(); 4 return $input; 5}
###補足情報(言語/FW/ツール等のバージョンなど)
php.ini
はこのような設定をしています。
[PHP] engine = On short_open_tag = Off precision = 14 output_buffering = 4096 output_handler = mb_output_handler 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 & ~E_DEPRECATED & ~E_STRICT display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off 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 = "UTF-8" 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 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = UTF-8,SJIS,EUR-JP,JIS,ASCII
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/03/18 03:15