如何删除C中字符串的重音符号?
有并没有一种更有效的方法来消除字符串中的重音符号,而不使用要替换的字符生成一个大数组 例如:如何删除C中字符串的重音符号?,c,non-ascii-characters,C,Non Ascii Characters,有并没有一种更有效的方法来消除字符串中的重音符号,而不使用要替换的字符生成一个大数组 例如: removeaccents("áèfoo") 输出: aefoo 在ASCII表格中没有重音符号,我不知道如何做到这一点。提前感谢。:) 听起来像是你在找的。从手册页: unac是一个C库,它可以从字符中删除重音符号,而不考虑字符集(ISO-8859-15、ISO-CELTIC、KOI8-RU…),只要iconv(3)能够转换它 转换为UTF-16(Unicode) 我找不到下载
removeaccents("áèfoo")
输出:
aefoo
在ASCII表格中没有重音符号,我不知道如何做到这一点。提前感谢。:) 听起来像是你在找的。从手册页:
unac
是一个C库,它可以从字符中删除重音符号,而不考虑字符集(ISO-8859-15、ISO-CELTIC、KOI8-RU…),只要iconv(3)
能够转换它
转换为UTF-16(Unicode)
我找不到下载页面(我想应该是这样的,但是链接现在是404)。如果您使用的是ubuntu,您可以通过以下方式获得:
sudo apt-get install libunac1-dev
假设您使用的是gcc,安装后您需要将
-lunac
添加到编译器选项中(告诉编译器链接到unac库)你总是可以使用一个if梯子而不是一个翻译表。你知道字符串使用什么编码吗?可能的帮助问题:@ CikuBa:它不是一个复制品——问题是关于C++的,而这是关于C.<代码>”的A.A.Foo“< /Cord>”不是一个有效的字符串文字。你到底想要什么?非常感谢。:)我下载并安装了,但是当我尝试链接和编译时,我得到了以下错误:/tmp/ccAKGVl9.o:In function
main:ILD.c:(.text+0x651):对unac_string'collect2的未定义引用:ld返回了1个退出状态
my code:\include/。。。char*out=0;大小输出长度=0;if(unac_string(“ISO-8859-1”、“été”、strlen(“été”)、&out和out_length)){printf(“unac_string”);}else{printf(“%s0”,out_length,out”);free(out);}
我使用gcc
上的-lunac
选项解决了问题,并将ISO-8859-1
更改为UTF-8
编码,现在工作正常。非常感谢:)