从C中的字符串中删除重音

时间:2012-03-14 03:10:16

标签: c non-ascii-characters

有一种更有效的方法可以从字符串中删除重音,而不需要使用字符替换大数组吗?

例如:

removeaccents("áèfoo")

输出:

aefoo

在ASCII表中没有重音符号,我不知道怎么做。提前致谢。 :)

1 个答案:

答案 0 :(得分:7)

听起来像是在寻找unac()。从手册页:

  

unac是一个C库,只要iconv(3)sudo apt-get install libunac1-dev ,就会删除字符的重音,无论字符集如何(ISO-8859-15,ISO-CELTIC,KOI8-RU ...)能够转换它          转换为UTF-16(Unicode)。

我找不到下载页面(我认为它的意思是here,但链接目前正在404)。如果您使用的是ubuntu,可以使用:

-lunac

假设您正在使用gcc,一旦安装完毕,您需要将{{1}}添加到编译器选项中(告诉编译器与unac库链接)。