سؤال

ونحن ننفذ I18N باستخدام JSTL واجه مشكلة أن النصوص مورد المعرفة في ملف .properties وجود غير ISO 8859 حرفا (مثل اللغات inidic) لا يمكن المقدمة من قبل العلامة.

وبعد الغوص من خلال رمز العلامة والطبقة BundleHelper في نهاية المطاف وجدنا أنه يستخدم داخليا طريقة ResourceBundle.getBundle التي في استخدام بدوره PropertyResourceBundle لتحميل الملف .properties كما حزمة الموارد.

وإنما تعتمد داخليا على java.util.Properties # تحميل (InputStream) الطريقة التي لا يدعم القراءة من غير ISO 8859 حرفا والعمل فقط حول هو تمثيل هذه الشخصيات في / ش عرافة عرافة عرافة شكل عرافة، الذي هو تماما غير عملي في حالة إذا كان الملف .properties كامل هو للغة الهندية!

هل هناك أي عمل حول لهذا الغرض. حاولت استخدام تنسيق XML في ملف .properties ولكن لم يتم التعرف عليها PropertyResourceBundle!

وتفاصيل البيئة هي: جدك 1.5، يبلوغيتش 9.2

هل كانت مفيدة؟

المحلول

هل كنت على الاطلاق <م> هل لديك استخدام JDK 1.5؟ إذا كنت قد نقل ما يصل الى 1.6، يمكنك استخدام الزائد load(Reader) التي من شأنها أن تتيح لك تخزين الملفات في ترميزات الأخرى (مثل UTF-8). لست متأكدا كيف يمكن أن تتلاءم مع PropertyResourceBundle، باعتراف الجميع.

ولا ننسى أنه حتى العمل مع ISO-8859-1 الملفات، لم يكن لديك لاستخدام هذا الشكل إلى <م> تحرير الملف. يمكنك استخدام native2ascii لتحويل ملف من ترميز مختلف. ابق على "مصدر" ملفات الممتلكات، UTF-8، ثم قم بتشغيل native2ascii كجزء من الإنشاء. على سبيل المثال:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties

نصائح أخرى

وكتابة الملفات الخاصة بك في أي الترميز الذي تريد وتشغيلها من خلال في أداة native2ascii (الذي يأتي مع JDK لهذا الغرض بالضبط) كجزء من عملية الإنشاء أو النشر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top