을 캐릭터 세트 그러나 나는 내가 CI 포럼에 주위 부탁 해요 .. 일부 문자 집합 문제를했습니다,하지만 난 여전히 글로벌 솔루션 더 갈하려는 : http://codeigniter.com/forums/viewthread/204409/CodeIgniter는 내가하지 오랫동안 CodeIgniter를 사용하고
문제는 데이터베이스 오류 1064입니다. 해결책이 있는데 iconv를 사용하십시오! 잘 작동하지만 필요 없다고 생각합니다. 저는 인터넷에서 charset 등을 많이 찾고 있습니다.하지만 지금은 CI를 사용하고 있습니다. 문자셋과 CI는 어떻습니까?
그래서 많은 질문을했습니다. 나를 위해 :
글로벌 charset을 설정하는 가장 좋은 방법은 무엇입니까? 그리고 무엇을 설정할 것인가? 구성에서
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
머리
/config.php를
구성에서
$config['charset'] = 'UTF-8';
/database.php
의 .htaccess에서$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
, 내 재 작성 규칙과
php_value magic_quotes_gpc Off
AddDefaultCharset UTF-8
는 또한 헤더를 보낼 필요가? 장소는 어디입니까? 뭔가? 내 편집기 (메모장 ++) UTF-8로 파일을 저장에서
header('Content-Type: text/html; charset=UTF-8');
? 또는 UTF-8 (BOM 없음)? 아니면 ANSI가 좋은가요? (지금 제가 사용하고있는 것입니다)?
MySQL 데이터베이스에 utf8_unicode_ci 또는 utf8_general_ci를 사용 하시겠습니까? 그리고 왜?
RSS 피드를 읽는 방법, 여러 문자 집합을 처리하는 방법은 무엇입니까? 내가 작업하고있는 곳에서는 UTF-8 인코딩과 ISO-8859-1의 두 가지 피드가 있습니다. 이것은 데이터베이스에 저장되며 때로는 새로운 항목이 있는지 비교하기 위해 비교됩니다. 특수 문자에서는 실패합니다.
내가 함께 일하고 있어요 : - CI 2.0.3 - PHP 5.2.17 - MySQL은 5.1.58
자세한 내용은 추가 :
모델 :
function update_favorite($data)
{
$this->db->where('id', $data['id']);
$this->db->where('user_id', $data['user_id']);
$this->db->update('favorites', $data);
return;
}
컨트롤러 : 따옴표없이 "테스트"(: $ rss_last 같은 "정상적인"값입니다
$this->favorites_model->update_favorite(array(
'id' => $id,
'rss_last' => $rss_last,
'user_id' => $this->session->userdata('user_id')
));
) 잘 작동합니다. 는 (네덜란드어에서) 같은 더 길이의 값의 경우 :
는 CI 포럼에서Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘vindt malware met certificaat van Maleisische overheid,
user_id
= ‘1’ WHERE `i’ at line 1UPDATE
favorites
SETid
= ‘15’,rss_last
= F-Secure vindt malware met certificaat van Maleisische overheid,user_id
= ‘1’ WHEREid
= ‘15’ ANDuser_id
= ‘1’Filename: /home/.../domains/....nl/public_html/new/models/favorites_model.php
Line Number: 35
누군가가 이것을 사용하라고 : 반 Maleisische이
을 overheid certificaat F 시큐어 vindt 악성 코드 나는이 오류가 만났다 : BEF에게로'rss_last' => iconv("UTF-8", "UTF-8//TRANSLIT", $rss_last)
이 잘 작동하지만 난이 필요하지 않습니다 생각은 ..
값 $의 rss_last는 RSS 피드를 나왔다 광석, 때로는 UTF-8 및 기타 회 ISO-8859-1 인코딩 :
: $ rss_last이 값으로 설정 될 때이 마지막 부분은 문제가있는 것처럼$rss = file_get_contents('http://www.website.com/rss.xml');
$feed = new SimpleXmlElement($rss);
$rss_last = $feed->channel->item[0]->title;
그것은 잘 작동 보인다
$rss_last = 'F-Secure vindt malware met certificaat van Maleisische overheid';
는 값이 ..이 문제를주는 RSS ... 좀 더 질문이 나왔을 때
그냥 이걸 발견 : Detect encoding and make everything UTF-8
최상의 솔루션?
$encoding = some_function_to_get_encoding_from_feed($feed);
$rss_last = iconv($encoding, "UTF-8//TRANSLIT", $feed->channel->item[0]->title);
그러나 "some_function_to_get_encoding_from_feed"무엇을 사용하는 :하지만 ... iconv에서 더 간단이 그런 짓을하지? mb_detect_encoding?
mb_convert_encoding vs iconv?
추가 : SQL Update 함수에서 _rss_last_를 제외한 모든 매개 변수가 따옴표로 묶입니다. 예, 저는 그것이 CI에 의해 생성 된 것을 알고 있지만 이것은 의심 스럽습니다. –
_ 괜찮습니다.하지만 이것이 필요하지 않다고 생각합니다 ._ 당신의 권리입니다. –