2010-07-25 69 views
28

Làm cách nào để lưu trữ Unicode trong phiên bản MySQL miễn phí?Làm thế nào để lưu trữ unicode trong MySQL?

Có vẻ như không phải là nvarchar nhập như trong SQL Server. Unicode có được hỗ trợ trong MySQL không? Tôi đã thử sử dụng text nhưng điều đó cũng không hoạt động.

Trả lời

21

Bạn cần phải chọn một nhân vật utf8_* thiết lập cho bảng của bạn. Các trường văn bản và ghi nhớ sau đó sẽ tự động được lưu trữ trong UTF-8. Hỗ trợ cho UTF-16 sắp có trong mySQL 6.

+5

Cập nhật: UTF-16 & Emoji (utf8mb4) hỗ trợ được giới thiệu kể từ phiên bản 5.5: http://dev.mysql.com/doc/refman/5.5/en/charset- unicode.html – Raptor

+0

Cần lưu ý rằng tùy thuộc vào cách bạn truy xuất dữ liệu từ cơ sở dữ liệu, nó cũng cần thiết để cho phép kết nối sử dụng UTF-8 một cách rõ ràng. – hugovdberg

2

Bạn đã thử đặt tên sau khi kết nối chưa? Kết quả của tryng để lưu trữ các ký tự unicode là gì? Kết nối với máy chủ mysql và nhập thông tin này:

SET NAMES UTF8; 

Điều này sẽ bật "hỗ trợ" cho utf8. Sau đó, hãy thử lưu trữ dữ liệu utf.

14

Ký tự đặt cho một cột chuỗi đã cho (CHAR, VARCHAR hoặc *TEXT) được xác định bởi character set and/or collation. Đây là một chủ đề khá mãnh liệt nên tốt nhất là đọc tài liệu tôi đã liên kết. Ví dụ:

CREATE TABLE t1 
(
    col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci 
) 

sẽ tạo ra một bảng t1 với một col1 lưu trữ nội dung của nó trong mã UTF-8.

+0

Giải thích và ví dụ hay. @ Stefan Gehrig –

1

Tôi làm theo cách viết mã của riêng mình, vì vậy hãy tính đến điều đó khi theo dõi khách hàng tiềm năng của tôi.

Đầu tiên tôi đã tạo cơ sở dữ liệu MySql.

sau khi tạo cơ sở dữ liệu, trong mysql dấu nhắc lệnh, cung cấp cho các lệnh:

SET NAMES = UTF8; 

bảng và cột để lưu trữ unicode sẽ được thiết lập với tài sản đối chiếu như utf8-utf_general_ci. Mỗi và mỗi cột có nghĩa là để lưu trữ unicode, là để được chọn và thiết lập collation bất động sản để utf8-utf_general_ci.

Hiện có trong C#.

chuỗi kết nối của tôi được thiết lập như bình thường nhưng với việc bổ sung các thuộc tính đơn lẻ như thế này:

constring = @"SERVER=localhost;" + @"PORT=3306;" + @"DATABASE=gayakidb;" + @"UID=root;" + @"PASSWORD=mysql;" + @"charset=utf8;"; 

Tiếp theo, cài đặt font chữ unicode trong phần 'Cài đặt Ngôn ngữ hiển thị' của hệ điều hành hệ thống của bạn. Hoặc, bạn có thể sao chép và dán tệp phông chữ (tệp loại thực) trong thư mục Phông chữ của Hệ điều hành.

Sau đó, tôi đặt thuộc tính phông chữ của đối tượng hộp văn bản hoặc bất kỳ đối tượng công cụ nào khác trong trang thuộc tính.

Hơn nữa, nếu bạn cần nhập phông chữ unicode bằng bàn phím, bạn cần cài đặt ngôn ngữ unicode cho bố cục bàn phím. Điều đó có thể được thực hiện bằng cách sử dụng tùy chọn cho cài đặt ngôn ngữ khu vực của Hệ điều hành của bạn.

Xong. với các thiết lập này, tôi mã hóa mô-đun để lưu dữ liệu và trong khi chạy ocde, nó đã thực hiện thành công công việc.

2

Sử dụng Query này

alter table `DBNAME`.`TblName` Engine=InnoDB checksum=1 comment='' delay_key_write=1 row_format=dynamic charset=utf8 collate=utf8_unicode_ci 
+0

"Sử dụng truy vấn này" mà không có giải thích là một câu trả lời tồi. – Emiswelt

Các vấn đề liên quan