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

如何用stri_trans_general()保留德语特殊字符并转写其他字符?

解决德语姓名转写时保留变音符号的问题

你遇到的问题是stri_trans_general的de-ASCII规则会将所有德语变音符号(如Ö、ä、ü)转成ASCII拼写形式(Ö→Oe),但你需要保留这些德语原生字符,仅转写其他特殊字符(如ğ→g)。

解决方案:自定义字符映射

直接针对需要转写的非德语特殊字符做精准替换,保留德语原有的变音符号:

library(stringi)

# 定义需要转写的字符映射(可根据实际需求扩展)
special_chars_map <- c(
  "ğ" = "g",
  "ş" = "s",
  "ı" = "i",
  "ç" = "c"
)

# 处理目标姓名
original_name <- "Özoğuz"
processed_name <- stri_replace_all_fixed(
  str = original_name,
  pattern = names(special_chars_map),
  replacement = special_chars_map,
  vectorize_all = FALSE
)

print(processed_name) # 输出:Özoguz

为什么原代码不符合预期

de-ASCII是专门用于将德语特殊字符转换为纯ASCII兼容形式的规则,它的设计逻辑就是把Ö替换成Oe、ä替换成ae等,所以会同时处理你想保留的德语变音符号,导致结果不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:58:17