You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

德语小写ß与大写ẞ的Foldcase转换:编程语言支持情况问询

德语大写ẞ与小写ß的Foldcase跨语言实现情况

2017年德语正字法委员会正式采纳大写ẞ(Unicode U+1E9E)作为小写ß(U+00DF)的可选大写形式,STRASSE与STRAẞE均合法。这一改动本应简化Foldcase比较,但Raku默认.fc方法将ß转为小写ss,而非与ẞ对应。

测试结果

  • Raku的.uc将ß转为SS,.fc同样转为ss,大小写往返转换后与原单词eq返回False,仅.fc结果与大写转小写的ss形式匹配。
  • 含ẞ的大写单词测试中,straße小写与STRAẞE小写相等,但与STRASSE小写不等;.fc结果则与STRASSE小写一致。

默认实现双向Foldcase转换的编程语言

  • Python 3.11+:默认的str.casefold()方法会将ß保留为ß,同时将ẞ转换为ß,实现符合2017年正字法规则的双向Foldcase映射。
  • Java 17+:String.casefold()方法遵循Unicode 14.0及之后的规则,原生支持ß与ẞ的双向Foldcase转换,匹配德语正字法要求。

提供可选支持或依赖第三方库的编程语言

  • JavaScript/TypeScript:原生String.prototype.toLocaleLowerCase('de-DE')在Chrome 104+、Node.js 18+等环境中可将ẞ转为ß,但标准casefold()(ES2021+)仍遵循Unicode默认规则将ß转为ss。可通过自定义正则逻辑或intl-messageformat等第三方库实现完整双向映射。
  • C#:.NET 6+中,String.ToLowerInvariant()仍将ß转为ss,但使用CultureInfo.GetCultureInfo("de-DE").TextInfo.ToLower()可实现ẞ转ß;如需完整双向Foldcase,需依赖Unicode.NET等第三方扩展库。
  • Raku:默认.fc不支持双向转换,但可通过自定义角色(Role)或Unicode::CaseFold等第三方模块,实现符合2017德语正字法的转换逻辑。

补充:Unicode规则与2017德语正字法的冲突

Unicode联盟的默认Foldcase规则中,ß的标准映射为ss;而2017年德语正字法要求ß的大写可选为ẞ,且Foldcase时需保持ß与ẞ的双向对应关系,这导致部分语言的原生实现与德语正字法需求存在差异。

内容的提问来源于stack exchange,提问作者jubilatious1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:22:38