Hy vọng đây là một số kiến thức về khung công tác Zend hơn tôi, tôi đã cố tìm kiếm câu trả lời nhưng tôi không thể làm bất cứ điều gì ở bất cứ đâu.Vấn đề với Zend Framework và UTF-8 ký tự (æøå)
Vấn đề:
Khi thêm nội dung của một Zend_Form cơ sở dữ liệu với việc sử dụng các nhân vật Zend_Db æ ø å được thay thế bằng øÃ|à ¥
Hệ thống
- WampServer 2.0i
- Apache 2. 2.11
- MySQL 5.1.36
- PHP 5.3.0
- Zend Framework 1.10.0
Modifications thực hiện để làm cho nó hoạt động (mà nó không)
application.ini
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "//Brukernavn//"
resources.db.params.password = "//Passord//"
resources.db.params.dbname = "//Database//"
resources.db.params.charset = "utf8"
resources.db.params.driver_options.1002 = "SET NAMES utf8"
resources.db.isDefaultTableAdapter = true
Đối với tất cả các hình thức Tôi đã thêm
->setAttrib('accept-charset', 'utf-8');
Và trong Bootstrap.php tôi đã đặt đoạn mã sau:
$view->setEncoding('UTF-8');
$view->doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
Cơ sở dữ liệu được thiết lập để utf8_general_ci
Bất cứ ai cũng có một mẹo về cách làm cho nó hoạt động?
soulution:
Đó là một lỗi trong PHP 5.3.0 và 5.3.1 (http://bugs.php.net/bug.php?id=47224 ) vì vậy tôi chọn để hạ xuống 5.2.11, và tất cả đã làm việc như một nét duyên dáng.
Nhờ Pekka và Greg K đã chỉ cho tôi đúng hướng.
Tôi tin rằng cơ sở dữ liệu được đặt thành 'utf8_general_ci' –
Oh yeah, overread that. Tuy nhiên, các bảng và các cột của chúng cũng cần phải là utf-8 (chỉ cần chuyển đổi db là không đủ). Nếu anh ta xác nhận các bảng và cột là UTF-8, tôi sẽ xóa câu trả lời này. –
Cảm ơn câu trả lời của bạn. Thực ra tôi đã quên tự mình chuyển đổi các trường, nhưng không thay đổi hành vi sau khi làm như vậy. –