Mã hóa máy chủ của bạn có vẻ là UTF8.
Tôi nghi ngờ client_encoding
của bạn không khớp, điều này có thể khiến bạn có ấn tượng sai về những gì bạn đang xử lý. Kiểm tra với:
SHOW client_encoding; -- in your actual session
Và đọc câu trả lời có liên quan này:
Không thể chèn các ký tự tiếng Đức trong Postgres
Thay thế các ký tự unicode trong PostgreSQL
Phần còn lại của chuỗi công cụ cũng phải đồng bộ. Ví dụ:khi sử dụng puTTY, người ta phải đảm bảo rằng thiết bị đầu cuối đồng ý với phần còn lại:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Đối với câu hỏi đầu tiên của bạn, bạn đã có giải pháp tốt nhất. Tốt nhất nên thay thế một vài âm sắc bằng một chuỗi replace()
tuyên bố.
Như bạn đã biết, việc thay thế một ký tự sẽ hiệu quả hơn với (một ký tự) translate()
tuyên bố.
Có liên quan:
- Thay thế các ký tự unicode trong PostgreSQL
- Regex xóa tất cả các lần xuất hiện của nhiều ký tự trong một chuỗi