回答編集履歴

2

ついき

2025/03/13 00:30

投稿

yambejp
yambejp

スコア117413

test CHANGED
@@ -23,4 +23,4 @@
23
23
  $str="№川家";
24
24
  var_dump( $str);
25
25
  ```
26
- 上記UTF8Nで保存すると文字化けが再現できるかと。
26
+ 上記UTF8N(BOMなし)で保存すると文字化けが再現できるかと。

1

調整

2025/03/13 00:29

投稿

yambejp
yambejp

スコア117413

test CHANGED
@@ -10,3 +10,17 @@
10
10
  var_dump( mb_convert_encoding($str,'UTF-8', 'utf-8, sjis-win'));
11
11
  var_dump( mb_convert_encoding($str,'HTML-ENTITIES', 'utf-8, sjis-win' ) );
12
12
  ```
13
+
14
+ # 追記
15
+ 「№川家」が「E2 84 96 E5 B7 9D E5 AE B6」で保存されているとありますがSJISであれば「87 82 90 EC 89 C6」になると思います。ご提示の化け方は以下のようにUTF8で保存された文字列をSJISで表示しようとしたときに起きる現象ですので、命題とはやっていることが違うと思います。以下確認ください
16
+ ```php
17
+ <?PHP
18
+ header('Content-Type: text/html;charset=SJIS');
19
+ ?>
20
+ <meta http-equiv="Content-Type" content="text/html; charset=SJIS">
21
+ <?PHP
22
+ mb_internal_encoding("SJIS");
23
+ $str="№川家";
24
+ var_dump( $str);
25
+ ```
26
+ 上記UTF8Nで保存すると文字化けが再現できるかと。