回答編集履歴

1

本文に追記しました

2019/09/28 01:44

投稿

ockeghem
ockeghem

スコア11705

test CHANGED
@@ -1,4 +1,22 @@
1
+ 入力フォーム側で以下を指定すれば、文字エンコーディングがUTF-8になり、そこから送信されるリクエストもUTF-8になります。通常はこうします。
2
+
3
+
4
+
5
+ ```HTML
6
+
7
+ <head>
8
+
9
+ <meta charset="UTF-8">
10
+
11
+ </head>
12
+
13
+ ```
14
+
15
+
16
+
17
+ 入力フォームが外部のサイトで、かつそれが不特定であるような場合は文字エンコーディングが不定という状況が稀にあります。おそらくそういう事情ではないと思うのですが、仮にそういうケースであれば、文字エンコーディングを自動判定させることはできます。
18
+
1
- [マニュアル](https://secure.php.net/manual/ja/function.mb-convert-encoding.php)を読みしょう。文字コードを自動認識させるだけであれば、以下のように書けます。
19
+ [マニュアル](https://secure.php.net/manual/ja/function.mb-convert-encoding.php)にありすが、文字コードを自動認識させるだけであれば、以下のように書けます。
2
20
 
3
21
 
4
22
 
@@ -37,3 +55,7 @@
37
55
  mbstring.internal_encoding=utf-8
38
56
 
39
57
  ```
58
+
59
+
60
+
61
+ ただ、文字エンコーディングの自動指定はかえって文字エンコーディングの誤判定により文字化けが生じやすいことと、セキュリティ上も若干弱くなるので、文字エンコーディングは固定することをおすすめします。