java.util.properties و CP1250
-
20-09-2019 - |
سؤال
هل يمكنني استخدام java.util.properties مع ترميز مختلف ثم الافتراضي؟
المحلول
ليس إلا إذا كنت
- يركضون Java 6 أو لاحقًا
- التحكم في رمز تحميل ملف الخصائص ، ويمكنه استخدام القارئ. يرى جافادوك.
هذا عيب مزعج جدا في المواصفات. هناك العديد من الحلول ، وربما تكون أبسط هي أن تلقائيًا تلقائيًا من مصدر متوافق متمثل Unicode.
تشحن جافا مع ترميز تسمى Native2ascii للقيام بذلك من أجلك:
هناك بعض RFEs المسنين حول هذا الموضوع:
نصائح أخرى
نعم ، ولكن عليك أن تكون حريصًا على استخدام load()
و store()
الطرق التي تأخذ Reader
/Writer
, ، وبناءها بشكل صريح باستخدام InputStreamReader/OutputStreamWriter
مع الترميز الصحيح.
قد لا يكون هذا ممكنًا مع المكتبات التي تستخدم ملفات الخصائص ضمنيًا.
تعديل: تم تقديم الطرق الموضحة أعلاه فقط في Java 1.6 - للإصدارات القديمة ، أنت محظوظ ، كما كتب Dsadinoff.
إذا كان ملف الخصائص الخاص بك متاحًا في وقت الإنشاء ، فيمكنك أيضًا تحويله في برنامج النصي ANT باستخدام مهمة Native2ascii:
<property name="javac.source.encoding" value="Cp1250"/>
<native2ascii src="${src.dir}" dest="${classes.dir}"
encoding="${javac.source.encoding}"
includes="**/*.properties"/>