Сложность кодирования UTF8 с использованием PHP в Notepad ++ - PullRequest
0 голосов
/ 24 января 2012

Я делал программу, которая создает несколько CSV из CSV другого источника (закодировано в 'SJIS' / SHIFT-JIS).Вот процесс, в котором я их создаю:

  1. Создайте строку, которая будет содержать содержимое выходных CSV
  2. Заполните указанные строки их правильной информацией
  3. Кодирование строки в UTF-8 из SJIS с использованием кода mb_convert_encoding ():
    $ contents2 = mb_convert_encoding ($ contents, "UTF-8", "SJIS");
  4. Создатьzip-архив, используя предоставленные PHP библиотечные методы, и добавьте нужные файлы с соответствующими им строками, используя код addFromString ():
    $ zipFileName = "output.zip";

        $zip = new ZipArchive;
        if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE){
            $zip->addFromString('customer.csv', $contents2);
            ...do for the other files
            $zip->close();
        }
        else{
            echo 'Failed! File not created!';
        }
    
  5. Запрос пользователяс диалоговым окном, чтобы сохранить файл в нужном месте.код: $ zipContents = file_get_contents ($ zipFileName);заголовок ('Content-Type: application / zip');заголовок («Content-Disposition: attachment; filename = inflow.zip»);заголовок ("Pragma: no-cache");заголовок («Истекает: 0»);echo $ zipContents;

Теперь вот моя проблема: файлы, которые я создал из zip-файла, кодируются в «UTF-8 без BOM», когда я открываю его в Notepad ++.Тем не менее, я требую, чтобы эти файлы были просто в формате "UTF-8".Программа инвентаризации, которую я использую для загрузки этих файлов, по независящим от меня причинам не будет отображать правильные символы для CSV, закодированных в «UTF-8 без спецификации».После того, как я вручную: открою файлы, перекодирую их как «UTF-8» и сохраню их, файлы, способные отображать правильные символы в этой программе инвентаризации.

Я прочитал множество статей, рассказывающих об обратном подходе к этой проблеме, где люди пытались сделать так, чтобы их файлы UTF-8 были закодированы без BOM.Однако моя ситуация - полная противоположность этому.Если в PHP есть простое решение, я бы очень хотел помочь!Спасибо за чтение !!

1 Ответ

0 голосов
/ 24 января 2012

Нашли возможное решение, смотрите это: Как вывести CSV-код UTF-8 на PHP, чтобы Excel правильно читал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...