Drupal node_save и специальные символы - PullRequest
1 голос
/ 12 марта 2010

Я пытаюсь создать узлы и термины таксономии с помощью специального сценария php с помощью функции node_save ().

Я работаю над Drupal 6.

Работает хорошо (благодаря предыдущим вопросам о stackoverflow), за исключением букв с акцентом.

Действительно, когда заголовок или термин таксономии содержат «é», «è» или «à», предложение обрезается перед этими специальными символами.

Например, такой заголовок: «Bonjour les éléphants» создаст узел с «Bonjour les» в качестве заголовка.

Я не знаю, связано ли это с моей базой данных или мне нужно использовать специальную кодировку в php (iconv () blabla)

Дело в том, что для заголовков drupal я не могу использовать html-кодировку (например: é is & eacute; в html), потому что drupal будет отображать & eacute, а не é ...

Когда я создаю таксономию или заголовок вручную, у меня нет проблем, и письмо с акцентом сохраняется в базе данных как "é".

Так, если вы можете помочь мне создать термины и заголовок с акцентированными буквами, это будет здорово:)

Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

Это похоже на проблему кодирования / кодировки ...

В Drupal все кодируется (и ожидается) в кодировке UTF-8 .

Не уверен, что это решит / исправит вашу проблему, но вы должны убедиться, что все в вашем приложении работает с / в UTF-8:

  • Ваши PHP-файлы, содержащие ваш исходный код, должны быть в формате UTF-8
    • Возможно, в вашей IDE / редакторе есть некоторые настройки
    • Это гарантирует, что строки, которые вы жестко закодировали, тоже в UTF-8
  • При использовании внешних данных перед вызовом node_save вы должны убедиться, что они находятся в UTF-8.
    • Функция utf8_encode может помочь
    • Или, может быть, mb_convert_encoding, в зависимости от кодировки, используемой вашими входными данными.


Я сталкивался именно с этой проблемой, связанной с обрезкой строк перед акцентированными символами, и каждый раз, проверяя, были ли строки переданы в соответствии с UTF-8, - возможно, это будет работать и для вас 1037 *

1 голос
/ 01 августа 2011

В Eclipse вы можете изменить это следующим образом:

Параметры> Общие> Рабочие пространства, установите «Кодировка текстового файла» на «Другое: UTF-8».

...