质量推广提醒 - JDK 23中的Unicode:移除COMPAT区域设置提供程序
原文英文,约400词,阅读约需2分钟。
📝
内容提要
OpenJDK Quality Group推广使用OpenJDK构建的FOSS项目进行测试,以提高发布质量。JDK 23删除了传统的区域设置数据,鼓励项目切换到CLDR。对于仍在使用传统数据的项目,提出了两个替代方案。
🔎
延伸解读
JDK 23 移除传统区域设置数据的影响
JDK 23 彻底移除了传统的区域设置数据,这意味着设置 java.locale.providers 为 JRE 或 COMPAT 将不再生效。对于仍依赖这些数据的项目,区域敏感的输出和解析行为可能发生变化,需要尽快迁移到 CLDR。
迁移到 CLDR 的替代方案
如果无法立即切换到 CLDR,文章提供了两种替代方案:一是创建自定义格式化程序,模拟传统行为;二是实现自定义区域设置数据提供者。这些方案适合迁移困难的项目,但需要额外开发工作。
从传统数据到 CLDR 的演进历程
JDK 从 2014 年开始向 CLDR 迁移,JDK 9 默认使用 CLDR,JDK 21 对 JRE/COMPAT 发出警告,直至 JDK 23 移除传统数据。这一长期过程旨在减少维护成本、提升跨平台互操作性和区域数据质量。
❓
Q&A
JDK 23中对区域设置数据做了哪些重要更改?
JDK 23移除了传统的区域设置数据,设置java.locale.providers为JRE或COMPAT将不再有效。
为什么OpenJDK质量组鼓励使用CLDR?
OpenJDK质量组鼓励使用CLDR以减少维护工作,提高平台间的互操作性和区域设置数据质量。
如果项目无法切换到CLDR,应该采取什么措施?
项目可以创建自定义格式化程序或实现自定义区域设置数据提供者作为替代方案。
JDK 8和JDK 9在区域设置数据方面有什么不同?
JDK 8支持约160个区域设置,默认使用传统数据,而JDK 9默认选择CLDR。
CLDR是什么,它在JDK中的作用是什么?
CLDR是通用区域设置数据库,用于管理区域设置数据,JDK通过CLDR提供更高质量的区域设置支持。
JEP 252在JDK中有什么重要性?
JEP 252提供了关于CLDR的详细信息和指导,最近进行了重写以改善信息质量。
🏷️