2012-12-20 23 views
7

Tất cả văn bản được hiển thị trong dự án của tôi bằng tiếng Hy Lạp. Tôi không sử dụng trực tiếp tr(), chỉ các ký tự Hy Lạp. Và đối với những mã hóa chính xác tôi đã sử dụng:QTextCodec :: setCodecForCStrings là GONE trong Qt5

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("ISO 8859-7"));//for Greek 

Qt5 mất setCodecForCStrings đi, và tất cả các nhân vật được hiển thị như "???????". Có cách giải quyết nào không?

Xin lưu ý đây là một dự án lớn, tôi muốn tránh sử dụng mã cho mỗi chuỗi trong chương trình .

+2

thích UTF-8, nó có thể đại diện cho tất cả các nhân vật. '???????' là dấu hiệu của quá trình chuyển đổi mã hóa bị mất, khi mã hóa đích không thể đại diện cho ký tự được chuyển đổi. Bạn có thể sửa lỗi này bằng cách sử dụng UTF-8, có thể đại diện cho tất cả các ký tự. – Esailija

Trả lời

5

Cảm ơn bạn Esailija

Vì vậy, lưu tất cả tệp của tôi bằng mã hóa UTF-8 đã giải quyết được sự cố.

Nếu bạn đang sử dụng Qt Creator, thay đổi mã hóa mặc định sang UTF-8:
Preferences -> Text Editor -> Default Encoding ... chọn UTF-8
Sau đó cho các tập tin hiện có đi đến Edit-> chọn Encoding và thay đổi nó sang UTF-8

còn cho bất cứ ai muốn biết thêm chi tiết xem tại đây http://www.macieira.org/blog/2012/05/source-code-must-be-utf-8-and-qstring-wants-it/

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