2010-01-18 28 views
9

OK, tôi không làm nhiều. Lập trình Net, nhưng tôi có một cái mà tôi duy trì, vì vậy câu trả lời cho điều này có thể hiển nhiên..NET Bản địa hóa: Ký tự tiếng Nhật Hiển thị dưới dạng Hình vuông

Setup:

  • Windows 7 Ultimate với tất cả các gói ngôn ngữ cài đặt
  • Visual Studio 2008 dự án Winforms VB.Net.

Tôi đang trong quá trình bản địa hóa dự án này và khi tôi tạo phiên bản tiếng Nhật, các ký tự hiển thị dưới dạng hình vuông, mặc dù chúng hiển thị chính xác trên trình duyệt của tôi. Tôi đoán rằng điều này là do phông chữ mặc định không có glyph cho các ký tự đó.

Vì vậy, câu hỏi của tôi:

Là winforms UTF-8 hoặc một số mã hóa ký tự khác? Có cách nào để thay đổi mã hóa ký tự không? Tôi có nên thay đổi phông chữ cho các biểu mẫu tiếng Nhật hay Windows sẽ làm điều đó? Thực tiễn chung tốt nhất ở đây là gì?

Tôi muốn biết rằng tôi đang sao chép các ký tự một cách chính xác vào biểu mẫu của mình và tôi muốn có thể kiểm tra chúng. Tôi có thể làm cái này như thế nào?

Cảm ơn mọi phản hồi!

EDIT: Cảm ơn thông tin! Đây là những gì tôi đã tìm thấy.

Arial Unicode MS không có tất cả các glyph, nhưng tôi đã không sử dụng nó, bởi vì nó không có trong danh sách phông chữ VS2008. Tôi tự chỉnh sửa hộp phông chữ để sử dụng nó, nhưng sau đó Visual Studio ném thông báo, "Đã cố đọc hoặc viết bộ nhớ được bảo vệ. Đây thường là dấu hiệu cho thấy bộ nhớ khác đã bị hỏng". Tôi đoán đó là bởi vì VS không có quyền truy cập phông chữ đó vì một lý do nào đó. Tôi quay trở lại phông chữ mặc định, thông báo lỗi đáng sợ biến mất.

Sau đó, ngay cả khi sử dụng Arial Unicode MS, văn bản sẽ hiển thị dưới dạng các khối trong tiêu đề biểu mẫu. Cùng văn bản hiển thị chính xác trong nhãn.

Vì vậy, tôi nghĩ tôi muốn sử dụng phông chữ mặc định và cho phép Windows xử lý phông chữ đó. Tôi nghĩ rằng tôi đã đọc tất cả mọi thứ từ XP trên sẽ xử lý nó. Windows 2000 sẽ không, đó là một sự xấu hổ, nhưng những gì bao giờ, tôi không biết những gì font tôi nên sử dụng, và bất cứ font chữ nó được loại trừ khỏi VS. Tôi không biết cách thêm nó mà không nhận được nhiều thông báo lỗi về bộ nhớ được bảo vệ.

Bây giờ vấn đề là, thay đổi kích thước nhãn trong biểu mẫu, vì văn bản đã dịch thường lớn hơn.

Ngoài ra, tôi không có nhóm hỗ trợ để làm điều này cho tôi, nhưng tôi có thể cài đặt thêm các bản sao Windows 7 và thay đổi gói ngôn ngữ tiếng Nhật và cố gắng chạy nó. Nhưng điều đó trở thành một nỗi đau lớn. Tôi nghĩ rằng tôi đọc rằng bạn có thể thay đổi ngôn ngữ trong khi ứng dụng đang chạy, nhưng điều đó dường như không đúng. MS tài liệu nói về làm thế nào để làm điều này, nhưng Windows 7 cũng cho bạn biết rằng bạn phải đăng xuất để thay đổi ngôn ngữ.

MS Gothic có vẻ hoạt động và là một phần của VS 2008, nhưng thanh tiêu đề vẫn là hình vuông. Đó là thực sự kỳ lạ, kể từ khi glyphs cùng là trong winform. Có phải vì phông chữ thanh tiêu đề được đặt ở cấp hệ thống chứ không phải cấp ứng dụng?

Xin lỗi vì đã quá dài dòng. Không chắc chắn rằng thậm chí còn có một câu hỏi ở đây. Chỉ cần cố gắng để có được tất cả ra, vì vậy có lẽ điều này sẽ giúp đỡ người khác xuống dòng.

+0

Phông chữ cho thanh tiêu đề cửa sổ được đặt trong applet Display Panel. Một lần nữa, điều này sẽ không được thiết lập để một phông chữ mà không thể làm cho glyphs Nhật Bản trên một phiên bản tiếng Nhật của Windows. –

+0

Gah! Hỗ trợ font chữ Buggy là một trong những lý do tôi sử dụng iMac tại nhà cho người Nhật trong gia đình tôi. Chuyển đổi ngôn ngữ liền mạch giúp mọi thứ trở nên dễ dàng. Thật không may, điều này không thực sự giúp vấn đề dev của bạn. – Armstrongest

+0

Tôi đang sử dụng Seogui rằng microsoft khuyến cáo thats tại sao có hình vuông nhưng thay đổi để Arial hiện ma thuật – Moons

Trả lời

8

Bất kỳ mã .NET nào, kể cả Windows Forms, sử dụng mã hóa Unicode là UTF16. Vấn đề của bạn không có khả năng là một vấn đề mã hóa, mà tạo ra dấu hỏi thay vì hình vuông. Lấy một hình vuông cho biết bạn đang sử dụng một phông chữ thiếu dấu thập phân bắt buộc để hiển thị ký tự tiếng Nhật.

Bạn có thể sử dụng applet charmap.exe để tìm hiểu glyph được hỗ trợ bởi phông chữ bạn sử dụng. Nếu chúng bị thiếu thì hệ điều hành buộc phải quay trở lại phông chữ thay thế và thất bại khi nó không thể tìm thấy nó. Hiển thị hình vuông là sau đó tất cả nó có thể làm. Phiên bản hệ điều hành cũ là nguyên nhân rất có thể gây ra rủi ro này, đặc biệt đối với XP mà không cần cài đặt các phông chữ Đông Á tùy chọn.

Lưu ý rằng vấn đề phông chữ này rất có thể không phải là vấn đề trên máy khởi động phiên bản tiếng Nhật của Windows. Nó sẽ có phông chữ thích hợp để hiển thị văn bản tiếng Nhật của khóa học. Bạn có thể nhận được các phiên bản ngôn ngữ cụ thể của Windows thông qua một thuê bao MSDN. Ít nhất hãy lấy một cho nhân viên QA của bạn để họ có thể xác minh rằng mọi thứ hoạt động chính xác.

+0

Arial Unicode có sẵn trên tất cả các phiên bản ngôn ngữ của Windows 7 không? Ngoài ra bạn có biết điều gì sẽ xảy ra nếu bạn chọn phông chữ tại thời điểm thiết kế không có sẵn khi chạy không? Thời gian chạy Windows/.NET có tự động chọn phông chữ thay thế không? – MarkJ

+0

Có. Trình tạo phông chữ Windows chọn phông chữ thay thế, Giao diện người dùng Segoe trên tiếng Anh Win7. Có lẽ không phải là tiếng Nhật. Không gửi phần mềm mà bạn chưa thử nghiệm. –

+0

Arial Unicode MS không có trong danh sách phông chữ của Microsoft được cung cấp cùng với Windows 7? http://www.microsoft.com/typography/Fonts/product.aspx?PID=161 – MarkJ

2

Đây là số great read về sự cố của bạn từ Joel Spolsky.

+0

Đây là một vấn đề thêm về phông chữ và hệ điều hành. Mặc dù chủ đề chung của unicode là có liên quan, bài viết này (cổ điển Spolsky) sẽ không giúp ích gì nhiều ở đây. – PandaWood

0

Chỉ cần rõ ràng, bạn đã cài đặt hỗ trợ ngôn ngữ: Control Panel/Regional Options/Display Languages. Có lẽ bạn đã có văn bản tiếng Nhật trong mã nguồn. Bạn đang lưu mã nguồn dưới dạng một số loại Unicode, phải không?

Trong 3 năm tôi đã duy trì một ứng dụng dựa trên biểu mẫu Nhật Bản (www.jbrute.com) đã di chuyển từ MFC, sang WinForms sang WPF trên các phiên bản tiếng Anh Mỹ của XP, Vista và Win7. Nó hiển thị chữ Hán, Kana và sử dụng IME. Không đau buồn gì cả.

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