実現したいこと
文字コードを変換する際に特定の文字列だけ文字化けしてしまうので文字化けさせずに文字コードを変換したい。
対象の文字列はSJISかUTF-8で、変換後はUTF-8に統一したい。
発生している問題・分からないこと
№川家
この文字列に対してmb_convert_encodingで文字コード変換する文字化けしてしまうので
文字化けしないようにさせたいです。
SJISへの変換は問題ないですが、UTF-8への変換で文字化けしてしまいます。
該当のソースコード
PHP
1echo mb_convert_encoding("№川家", 'UTF-8', 'utf-8, sjis-win'); 2echo mb_convert_encoding("No.川家", 'UTF-8', 'utf-8, sjis-win'); 3echo mb_convert_encoding("№河家", 'UTF-8', 'utf-8, sjis-win'); 4echo mb_convert_encoding("№川毛", 'UTF-8', 'utf-8, sjis-win');
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
貼り付けたソースコードの結果
邃門キ晏ョカ
No.川家
№河家
№川毛
と、1番上の文字列だけ文字化けしてしまいます。
第1引数は変数でUTF-8かSJISが混在しているためエンコードの指定はこのようにしています。
1番上のソースコードを
mb_convert_encoding("№川家", 'sjis, 'utf-8, sjis-win');
このようにSJISに変換しようとすると文字化けせずに動きます。
何故この文字列のときだけSJISなら動くのかわからないです。
補足
phpのバージョンは8.2.12
xamppとVScodeを使っています。
また、phpファイルはUTF-8で保存しています。

回答5件
あなたの回答
tips
プレビュー