2009-01-26 41 views
6

Khi sử dụng Grails 1.0.4 cùng với MySQL, bộ ký tự của các bảng cơ sở dữ liệu được tạo tự động dường như mặc định là ISO-8859-1. Tôi muốn có mọi thứ được lưu trữ dưới dạng UTF-8 thuần túy. Điều đó có thể không?UTF-8 chỉ trong bảng cơ sở dữ liệu Grails

Từ các định nghĩa cơ sở dữ liệu tự động tạo ra:

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; 

Lưu ý "latin1" phần.

Trả lời

12

Hầu hết các cài đặt MySQL mặc định là latin1, vì vậy nếu không được hướng dẫn khác, trình điều khiển sẽ theo giá trị mặc định. Nó là đủ để thêm vào trước các chỉ thị charset trong URL kết nối, ví dụ:

jdbc:mysql://localhost/databaseName?useUnicode=yes&characterEncoding=UTF-8

Đối với điều này để làm việc, JAR MySQL Connector phải của phiên bản 5 (3.x sẽ không hoạt động).

Nguồn: MySQL Reference manual: Using Character Sets and Unicode

+0

Cảm ơn bạn. Giúp đỡ rất nhiều. – Phil

+0

Rất vui khi được nghe, bạn được chào đón! – miek

6

cũng mã hóa ký tự mặc định phải được thiết lập cho các cơ sở dữ liệu trong việc tạo ra

CREATE DATABASE databaseName DEFAULT CHARACTER SET utf8; 
1

Bạn phải tạo sử dụng cơ sở dữ liệu đối chiếu utf8_genenal_ci. Và sau đó bạn thêm chuỗi này vào chuỗi kết nối:

useUnicode=true&characterEncoding=utf-8" 
Các vấn đề liên quan