utf8_encode () не может правильно преобразовать несколько неанглийских / диакритических символов

У меня очень странная ситуация. следующий текст в моем csv-файле и файле показан как кодировка ANSI на notpade ++.
введите описание изображения здесь

Œœ
Ÿ
654123 ÁÁÀÀâÂäããååæÆçæÆéÉèÈêÊëËíÍìÌîÎïÏñÑóÓòÒôÔöÖõÕŒœúÚùÙûÛüÜÿŸ

И вот мой пример кода:

<?php
header('Content-Type: text/html; charset=UTF-8');

$handle = fopen("unicode.csv", "r");while (($line = fgets($handle)) !== FALSE)
{
$cur_encoding = mb_detect_encoding($line) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($line,"UTF-8"))
{
echo "\r\n UTF-8".$line;
}
else
{
echo "\r\n encode UTF-8".utf8_encode($line);
}
}?>

проблема с кодом, который я нашел:

  1. не в состоянии обнаружить кодировку.
  2. два символа отсутствуют. (Œœ и Ÿ)

Пожалуйста, помогите мне выяснить, почему эти два символа отсутствуют.
еще одно странное поведение заключается в том, что он показывает символ в Chrome, но не в FF или IE
Замечания: Я могу читать успешно, если я конвертирую кодировку в UTF-8, используя Notepad ++. поэтому, пожалуйста, не предлагайте это решение.
Получить CSV-файл здесь

-1

Решение

Этот файл закодирован в кодовой странице 1252 a.k.a. MS-ANSI a.k.a. WINDOWS-1252 a.k.a. Windows Latin 1. Чтобы преобразовать его в UTF-8:

echo iconv('CP1252', 'UTF-8', file_get_contents('unicode.csv'));
1

Другие решения

Попробуй это:

$encoding = mb_detect_encoding($line, array(
'UTF-8', 'ASCII'
));

var_dump(iconv($encoding, 'UTF-8', $line));exit;
-1

По вопросам рекламы [email protected]