Nếu bạn cần lưu trữ dữ liệu UTF8 trong cơ sở dữ liệu của mình, bạn cần một cơ sở dữ liệu chấp nhận UTF8. Bạn có thể kiểm tra mã hóa cơ sở dữ liệu của bạn trong pgAdmin. Chỉ cần nhấp chuột phải vào cơ sở dữ liệu và chọn "Thuộc tính".
Nhưng lỗi đó dường như đang nói với bạn rằng có một số dữ liệu UTF8 không hợp lệ trong tệp nguồn của bạn. Điều đó có nghĩa là copy
tiện ích đã phát hiện hoặc đoán rằng bạn đang cung cấp cho nó tệp UTF8.
Nếu bạn đang chạy dưới một số biến thể của Unix, bạn có thể kiểm tra mã hóa (nhiều hơn hoặc ít hơn) với file
tiện ích.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Tôi nghĩ rằng nó cũng sẽ hoạt động trên máy Mac trong thiết bị đầu cuối.) Không chắc chắn làm thế nào để làm điều đó trong Windows.
Nếu bạn sử dụng cùng một tiện ích trên một tệp đến từ các hệ thống Windows (nghĩa là một tệp không được mã hóa trong UTF8), nó có thể sẽ hiển thị một cái gì đó như thế này:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Nếu mọi thứ trở nên kỳ lạ, bạn có thể cố gắng chuyển đổi dữ liệu đầu vào của mình thành một mã hóa đã biết, để thay đổi mã hóa của khách hàng hoặc cả hai. (Chúng tôi thực sự mở rộng giới hạn kiến thức của tôi về mã hóa.)
Bạn có thể sử dụng iconv
tiện ích để thay đổi mã hóa dữ liệu đầu vào.
iconv -f original_charset -t utf-8 originalfile > newfile
Bạn có thể thay đổi mã hóa psql (máy khách) theo hướng dẫn trên Hỗ trợ bộ ký tự . Trên trang đó, tìm kiếm cụm từ "Để bật chuyển đổi bộ ký tự tự động".