質問するログイン新規登録

回答編集履歴

3

追記

2020/01/30 06:19

投稿

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

2

追記&訂正

2020/01/30 06:19

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,5 @@
1
1
  > UTF-8→SJISで文字化けせずに変換する方法はないのでしょうか?
2
2
 
3
- Shift_JIS に含まれていない文字以外は不可能です。ただし、「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
3
+ Shift_JIS に含まれていない文字は不可能です。質問者さんの言う「機種依存文字」は Shift_JIS に含まれてないのでは? (ただし、質問のコードにある「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
4
4
 
5
5
  OS が Windows なら付属の IME パッドを使って Unicode に含まれる文字と Shift_JIS に含まれる文字を比較して見るといろいろ分かると思います。

1

追記

2020/01/30 05:45

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,5 @@
1
1
  > UTF-8→SJISで文字化けせずに変換する方法はないのでしょうか?
2
2
 
3
- Shift_JIS に含まれていない文字以外は不可能です。
3
+ Shift_JIS に含まれていない文字以外は不可能です。ただし、「文字列」という文字は Shift_JIS に含まれるので変換できるはずですが・・・
4
4
 
5
5
  OS が Windows なら付属の IME パッドを使って Unicode に含まれる文字と Shift_JIS に含まれる文字を比較して見るといろいろ分かると思います。