Проблема с UTF-8 - PullRequest
       4

Проблема с UTF-8

0 голосов
/ 12 августа 2011

У меня проблема с utf-8. Я использую рамки Codeigniter. Для клиента я должен преобразовать файл CSV в базу данных. Но когда я добавляю данные через запрос к базе данных это проблема. Некоторые персонажи не работают. Например это слово: Eén. Когда я добавляю это слово в PhpMyadmin, это правильно.

Когда я пытаюсь выполнить запрос Codeigniter, это не так. Моя база данных стоит на Utf-8. Конфигурация Codeigniter - это utf-8. Конфигурация базы данных находится на utf-8.

Вот запрос:

 $query = "INSERT INTO lds_leerdoel(id,leerdoel,kind_omschrijving,cito,groep_id,OCW,opbouw,
kerngebied_id,jaar_maand,KVH,craats,refnivo,toelichting,auteur)
VALUES
(
'".$this->db->escape_str($id)."',
'".$leerdoel."',
'".$this->db->escape_str($kind_omschrijving)."',
'".$this->db->escape_str($cito)."',
'".$this->db->escape_str($groep_id)."',
'".$this->db->escape_str($OCW)."',
'".$this->db->escape_str($opbouw)."',
'".$this->db->escape_str($kerngebied_id)."',
'".$this->db->escape_str($jaar_maand)."',
'".$this->db->escape_str($KVH)."',
'".$this->db->escape_str($craats)."',
'".$this->db->escape_str($refnivo)."',
'".$this->db->escape_str($toelichting)."',
'".$this->db->escape_str($auteur)."'
)";

$this->db->query($query);

Проблема в полевом лердуле. Есть ли у кого-нибудь решение. Большое спасибо!

Привет, Элле

Ответы [ 5 ]

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

Вам нужно будет выполнить этот запрос до запроса вставки

"SET NAMES utf8"
0 голосов
/ 29 июня 2012

У меня была похожая проблема, и я решаю добавить это в начале моего файла PHP:

ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');

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

Если вы хотите увидеть мою проблему и решение, она здесь .

Надеюсь, это поможет вам!

0 голосов
/ 12 августа 2011

Попробуйте добавить это в свой заголовок

header('Content-Type: text/html; Charset=UTF-8');

Также проверьте настройки кодировки вашего редактора.

0 голосов
/ 12 августа 2011

Не следует ли использовать строковый литерал национального символа? http://dev.mysql.com/doc/refman/5.0/en/charset-national.html

То есть, вы бы написали:

 $query = "INSERT INTO lds_leerdoel(id,leerdoel,kind_omschrijving,cito,groep_id,OCW,opbouw,
kerngebied_id,jaar_maand,KVH,craats,refnivo,toelichting,auteur)
VALUES
(
'".$this->db->escape_str($id)."',
N'".$leerdoel."',
-- rest of query omitted
0 голосов
/ 12 августа 2011

Попробуйте преобразовать текст в Unicode с помощью iconv():

iconv( "ISO-8859-1", "UTF-8", $leerdoel );

Возможно, вам придется немного поэкспериментировать, если вы не знаете, какую кодировку использует файл. (Я думаю, что ISO-8859-1 или ISO-8859-15 являются наиболее распространенными.)

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