2011-11-01 26 views
6

Tôi đang cố gắng duy trì một số dữ liệu mà tôi nhận được từ một biểu mẫu trong cơ sở dữ liệu MySQL bằng Doctrine2 và Symfony 2. Vấn đề của tôi là dữ liệu này bằng tiếng Hy Lạp và mặc dù cơ sở dữ liệu và các trường là utf8_general_ci nó Doctrine2 không lưu trữ chính xác các ký tự này.Dữ liệu utf-8 hiện có với Doctrine2 trong Symfony2

Tôi đã kiểm tra các ký tự này là chính xác trong lớp ánh xạ của tôi, vì vậy tôi đoán rằng vấn đề là cấu hình Doctrine của tôi. Bất kỳ ý tưởng nào về nó có thể là gì?

Trả lời

6

Tôi tự tìm ra. Tôi đã phải đặt Doctrine Dbal thành utf8. Cho rằng tôi chỉ cần thêm dòng sau vào config.yml tôi:

doctrine: 
    dbal: 
     //rest of the configuration 
     charset: utf8 
+2

Hmm đó là lạ. config.yml của tôi có mục nhập utf8 đúng cho bộ ký tự, nhưng khi tôi nhìn vào mysql của tôi "hiển thị tạo bảng TableName" nó nói "DEFAULT CHARSET = latin1" – targnation

+0

Tương tự ở đây - bạn đã xuống đáy nếu điều này? – codecowboy

1

Bạn cũng cần các mục sau đây trong my.cnf:

collation-server = utf8_general_ci 
character-set-server = utf8 
Các vấn đề liên quan