Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách lưu trữ dấu trọng âm trên các ký tự trong cơ sở dữ liệu của tôi

UTF-8 (nói chung) là một mã hóa “an toàn” cho bất kỳ bộ ký tự nào trên thế giới. (Không phải lúc nào cũng hiệu quả nhất và có một số lập luận cho rằng Unicode đại diện cho các tập lệnh CJK với mô hình “han hợp nhất” của nó, nhưng vẫn tiếp tục…)

Tuy nhiên, có khả năng (các) chương trình giao diện của bạn không dịch sang / từ UTF-8 đúng cách. Ví dụ:ó => ó có vẻ như dữ liệu UTF-8 (trong đó một ký tự có thể được trải rộng trên một số byte khác nhau) đang được hiển thị cho bạn bằng cách sử dụng mã hóa Châu Âu một byte, như ISO-8859-15 hoặc MS- CP-1451 hoặc tương tự.

Bạn có lẽ là lưu trữ dữ liệu một cách chính xác, nhưng đang tải nó không chính xác. Nếu bạn chỉ sử dụng mysql chương trình đầu cuối hoặc chương trình tương tự, hãy đảm bảo rằng thiết bị đầu cuối của bạn được đặt để sử dụng UTF-8 (trên hệ thống Unix / Linux, locale có lẽ phải là thứ gì đó kết thúc bằng .utf8 , ví dụ. của tôi có LANG=en_US.utf8 )

Nếu bạn đang lấy dữ liệu bằng công cụ GUI hoặc công cụ tương tự, hãy kiểm tra bảng Cài đặt / Tùy chọn của nó để biết bộ ký tự.

Nếu bạn nhận được các ký tự được dịch sai trở lại trong một ứng dụng bạn đã viết, hãy xem các công cụ của ngôn ngữ của bạn để thiết lập ngôn ngữ. (Có lẽ, INSERT quy trình làm đúng, nhưng SELECT có sai quy trình không?)

Và, nếu điều này đang được gửi đến Web, hãy đảm bảo rằng các tệp (XML | HTML | XHTML) của bạn có charset=utf8 được khai báo ở (các) vị trí thích hợp, hoặc dịch ngược từ UTF-8 sang bộ ký tự trong tài liệu của bạn (nếu có thể) bằng cách sử dụng một cái gì đó như iconv khi chèn văn bản từ cơ sở dữ liệu. (Tất nhiên, hầu hết các bộ ký tự không phải Unicode chỉ có thể đại diện cho một tập con của Unicode; ví dụ:bộ ISO-8859-15 thực hiện rất tốt việc bao gồm các ngôn ngữ châu Âu, nhưng không hỗ trợ hệ thống viết Cyrillic, Ả Rập hoặc CJK, vì vậy có thể không dịch được một ký tự.) Trong Perl, bạn có thể sử dụng đối số truyền để open hoặc sử dụng binmode để thiết lập lớp dịch tập hợp ký tự trong suốt trên luồng "xử lý tệp".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tiêu đề bảng lặp lại từ một vòng lặp for trong php

  2. SQL - AS - table không tồn tại - 1146

  3. mysql Đếm nhiều lần xuất hiện của các mục được ghép

  4. Làm thế nào để lấy số ngày chênh lệch giữa hai ngày trên MySQL?

  5. Truy vấn con chậm trong MySQL