実現したいこと
半角、または全角のスペースで区切られた単語群を含む文字列を各単語を要素に配列に変換する
以下ののようなコードを試しました
PHP
1function convertStringToArray($inputString) { 2 $wordArray = preg_split('/[ ]+/', $inputString, -1, PREG_SPLIT_NO_EMPTY); 3 4 return $wordArray; 5} 6$inputString = "こんにちは Hello 世界 world"; 7$wordsArray = convertStringToArray($inputString); 8print_r($wordsArray);
出力結果
Array ( [0] => ?? [1] => ?? [2] => ?? [3] => ?? [4] => ?? [5] => Hello [6] => 世界 [7] => world )
発生している問題
ひらがなが??に置き換えれれてしまっている
試したこと
エンコードを無理やり明示的に処理すればできるかもと思って以下のコードを試すも、続くエラーメッセージになる。
PHP
1function convertStringToArray($inputString) { 2 $inputString = mb_convert_encoding($inputString, "UTF-8", "auto"); 3 $wordArray = preg_split('/[ ]+/', $inputString, -1, PREG_SPLIT_NO_EMPTY); 4 foreach ($wordArray as &$word) { 5 $word = mb_convert_encoding($word, "auto", "UTF-8"); 6 } 7 8 return $wordArray; 9}
エラー
Fatal error: Uncaught ValueError: mb_convert_encoding(): Argument #2 ($to_encoding) must be a valid encoding,
元のエンコーディングもUTF-8なので"auto"を”UTF-8”にしてみてもだめでした
補足情報
- Mac OS Ventura 13.2.1
- PHP 8.1.6
- Xdebug v3.1.5
- エンコードでUTF-8以外はない

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/07/23 02:39
2023/07/23 02:49