回答編集履歴

3

追記

2020/01/30 06:19

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,29 @@
7
7
 
8
8
 
9
9
  OS が Windows なら付属の IME パッドを使って Unicode に含まれる文字と Shift_JIS に含まれる文字を比較して見るといろいろ分かると思います。
10
+
11
+
12
+
13
+ **【追記】**
14
+
15
+
16
+
17
+ > 例えば文字列の中に①という機種依存文字が含まれている場合
18
+
19
+
20
+
21
+ 以下の記事に "CP932 コードマップを使用するには、代わりに SJIS-WIN を使用してください。" とありました。
22
+
23
+
24
+
25
+ サポートされるエンコーディングの概要
26
+
27
+ [https://www.php.net/manual/ja/mbstring.encodings.php](https://www.php.net/manual/ja/mbstring.encodings.php)
28
+
29
+
30
+
31
+ CP932 は Microsoft の独自拡張版 Shift_JIS で IME パッドで表示されるのはそれです。① は CP932 に含まれますが独自拡張部分です。
32
+
33
+
34
+
35
+ でも、質問者さんの環境では独自拡張部分はサポートされてなくて、結果 ① は「?」となってしまうということなんでしょうか?

2

追記&訂正

2020/01/30 06:19

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Shift_JIS に含まれていない文字以外は不可能です。ただし、「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
5
+ Shift_JIS に含まれていない文字は不可能です。質問者さんの言う「機種依存文字」は Shift_JIS に含まれてないのでは? (ただし、質問のコードにある「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
6
6
 
7
7
 
8
8
 

1

追記

2020/01/30 05:45

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Shift_JIS に含まれていない文字以外は不可能です。
5
+ Shift_JIS に含まれていない文字以外は不可能です。ただし、「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
6
6
 
7
7
 
8
8