2012-01-02 28 views
8

Tôi muốn thiết lập một văn bản trong một label:GWT: Character encoding umlauts

labelDemnaechst.setText(" Demnächst fällig:"); 

Ngày đầu ra trong việc áp dụng các ký tự "A" được hiển thị sai.

Tôi làm cách nào để hiển thị chúng tốt?

+0

Trình duyệt nào? Mã hóa nội dung là gì? khi bạn kiểm tra đầu ra đã biên dịch, bạn thấy gì, umlauts hoặc một số rác? – milan

+0

Google chrome, bởi vì nó là một ứng dụng GWT. Mã hóa nội dung? Trong applicationname.gwt.xml tôi đã viết Tôi xem xét dự án ví dụ trên web và ở đó họ đã viết "löschen" thay vì "löschen" Điều đó hoạt động .... Tôi nên viết gì cho những cái umlauts "ä" "ü" ... –

Trả lời

4

bạn cũng phải mã hóa các charactars đặc biệt của mình thành Unicode. Bạn có thể tìm thấy danh sách các ký tự Unicode đại diện here.

examle của bạn sẽ trông như thế này:

labelDemnaechst.setText("Demn\u00E4lachst f\u00E4llig:"); 

Hope this helps, nếu không ai có một giải pháp tốt hơn.

Phụ lục:

Cảm ơn Thomas vì bạn đã thực sự phải thay đổi định dạng trong đó nhật thực là nguồn của tệp. Theo mặc định, nó sử dụng một cái gì đó giống như Cp1252. Nếu bạn thay đổi nó thành UTF-8, ví dụ của bạn hoạt động chính xác. (Vì vậy, Demnächst được viết một cách chính xác).

Bạn có thể chỉnh sửa định dạng đang chờ, nếu bạn nhấp chuột phải vào tệp của mình -> Tùy chọn. enter image description here

+0

cảm ơn ...: D –

+1

Bạn nên thực sự làm điều này tại dự án hoặc (thậm chí tốt hơn) mức không gian làm việc, thay vì giảm xuống mức tệp. –

+0

có thể, bạn có biết nơi tôi có thể thay đổi điều đó, vì vậy nó tự động lưu tất cả các tệp dự án mới vào UTF-8? – Stefan

5

GWT giả định tất cả các nguồn tập tin được mã hóa theo UTF-8 (và đây là lý do tại sao bạn thấy löschen nếu bạn mở chúng bằng một trình soạn thảo giải thích cho họ như Windows-1252 hoặc ISO-8859-1) .

GWT cũng tạo tệp được mã hóa UTF-8, vì vậy máy chủ web của bạn nên phân phối dưới dạng UTF-8 (hoặc không chỉ định mã hóa), để cho trình duyệt "ngửi" nó máy chủ HTML của bạn trang cũng nên được phân phối theo UTF-8 (tốt nhất là đặt <meta charset=utf-8> vào đầu số <head>) của bạn.

Nếu \u00E4 trong Java được hiển thị chính xác trong trình duyệt, thì có thể trong trường hợp đầu tiên, nơi tệp nguồn của bạn không được mã hóa bằng UTF-8.

Xem http://code.google.com/webtoolkit/doc/latest/FAQ_Troubleshooting.html#International_characters_don 't_display_correctly

+0

cảm ơn, tôi đã chỉnh sửa tệp anserer của mình để tệp java được an toàn correctyl – Stefan

2

Để có được mã UTF-8 cho toàn bộ không gian làm việc của bạn, hãy để Window -> Preferences. Trong cửa sổ bật lên, hãy nhập encoding. Bây giờ bạn cần có kết quả là Content Types, Workspace, CSS Files, HTML Files, XML Files. Trong các kiểu nội dung, bạn có thể nhập UTF-8 trong hộp văn bản Mã hóa mặc định, đối với các phần tử khác, bạn chỉ có thể chọn mã hóa trong hộp danh sách tương ứng của chúng.

Sau đó, kiểm tra mã hóa cho dự án của bạn theo số Project -> Properties -> Resource.

hướng dẫn chi tiết với hình ảnh có thể được tìm thấy ở đây:

http://stijndewitt.wordpress.com/2010/05/05/unicode-utf-8-in-eclipse-java/

Cheers

+0

Đây thực sự là câu trả lời hay nhất. Bạn thực sự nên đặt mã hóa ở cấp dự án để đảm bảo rằng nó được chia sẻ với các thành viên khác của dự án. Cảm ơn bạn đã liên kết tới blog của tôi BTW :) –

0

những gì tôi đã làm: mở file bằng notepad (Windows Explorer), và lưu nó với các tùy chọn UFT -8 thay vì đề xuất ANSI.

Encoding dự án sang UTF-8 đã không làm việc (đối với tôi)

Cheerio

+0

.... nếu bạn gặp sự cố khi sử dụng gwt i18n – ronare

0

Sử dụng iso-8859-1 (tây âu) ký tự thay vì UTF-8.