Дьявольские кудрявые цитаты


У меня есть скрипт InDesign, который преобразует страницу в формат JSON.

Однако это поставляется с умными "фигурными" двойными кавычками вместо обычных (""). Конечно, это приводит к созданию недопустимого файла JSON.

Пытаясь решить проблему, так как мне нужно было выполнить некоторые другие операции с PHP над этими файлами, я попытался решить эту проблему и решить ее при загрузке файла.

Оказывается, что функция работает (не всегда) только с кавычками, созданными InDesign в ПК С Windows. Если вы запустите скрипт на MAC и загрузите файл, он вообще не будет работать, потому что кодировка кажется другой. Я пробовал другие решения, подобные этому, но они вообще не дали бы никакого результата.

Вот сценарий.

    function quoteReplacer($file)
    {



        $string = file_get_contents($file);

        $string = to_utf8($string);
        $bits = array('\xe2\x80\x9c', '\xe2\x80\x9d', '\xe2\x80\x98', '\xe2\x80\x99','â','â');
        $string = str_replace($bits,'"',$string);

        file_put_contents($file,$string); 




        //file_put_contents($file,$string);

    }

    function to_utf8( $string ) { 
            return iconv( 'CP1250', 'UTF-8', $string); 
    } 
Author: João Dias, 2012-08-17

1 answers

Этот скрипт должен работать:

// First, replace UTF-8 characters.
$text = str_replace(
 array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
 array("'", "'", '"', '"', '-', '--', '...'),
 $text);
// Next, replace their Windows-1252 equivalents.
 $text = str_replace(
 array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
 array("'", "'", '"', '"', '-', '--', '...'),
 $text);

Чтобы заменить все странные символы, которые могут засорить ваш JSON. любезно предоставлено: ссылка.

В качестве альтернативы вы можете попросить их отключить его на всех рабочих станциях, нажав команду + Сдвиг + Вариант + клавиша кавычки рядом с вводом для MAC, эквивалентом на ПК, вероятно, является ctrl + альт + сдвиг + ' или вы можете найти его в предпочтения.

 8
Author: Wolfe, 2015-07-24 08:39:05