Tag: utf 8

C / C ++ UTF-8大/小写转换

问题:有一种方法可以在一台机器上运行相应的测试用例而在另一台机器上运行失败(详情如下)。 我认为代码有问题,导致它在一台机器上偶然工作。 不幸的是我找不到问题。 请注意,std :: string和utf-8编码的使用是我没有实际影响的要求。 使用C ++方法会很好,但不幸的是我找不到任何东西。 因此使用C函数。 方法: std::string firstCharToUpperUtf8(const string& orig) { std::string retVal; retVal.reserve(orig.size()); std::mbstate_t state = std::mbstate_t(); char buf[MB_CUR_MAX + 1]; size_t i = 0; if (orig.size() > 0) { if (orig[i] > 0) { retVal += toupper(orig[i]); ++i; } else { wchar_t wChar; int len = mbrtowc(&wChar, &orig[i], MB_CUR_MAX, […]

C库将unicode代码点转换为UTF8?

我必须经历一些文本并根据字符模式编写UTF8输出。 我认为如果我可以使用代码点并将其转换为UTF8将会很容易。 我一直在阅读有关unicode和UTF8的内容,但无法找到一个好的解决方案。 任何帮助将不胜感激。

如何让ncurses输出星体平面unicode字符

我有以下一段非常简单的代码,它应该输出(除其他外)三个unicode字符: /* * To build: * gcc -o curses curses.c -lncursesw * * Expected result: display these chars: * http://www.fileformat.info/info/unicode/char/2603/index.htm (snowman) * http://www.fileformat.info/info/unicode/char/26c4/index.htm (snowman without snow) * http://www.fileformat.info/info/unicode/char/1f638/index.htm (grinning cat face with smiling eyes) * * Looks like ncurses is NOT able to display second and third char * (only the first one is OK…) […]

用于UTF-8代码单元的PHP和C ++中文字符的逆序

中文单词你好的unicode代码点分别为4F60,597D。 我从这个工具得到的http://rishida.net/tools/conversion/ 下面的控制台应用程序将打印出60:4F:7D:59的hex字节序列。 正如您所看到的,它与每个字符的unicode代码点的顺序相反。 首先是60然后是4F,而不是4F然后是60.为什么会这样? 谁是对的? 工具或控制台应用程序? 或两者 ? void printHex (char * buf, char *filename) { FILE *fp; fp=fopen(filename, “w”); if(fp == NULL) return; int len2 = sizeof(buf); int i; char store[10]; for (i = 0; i 0) fprintf(fp,”:”); //sprintf(store, ); fprintf(fp,”%02X”, buf[i]); } fprintf(fp,”\n”); fclose(fp); } int main(int argc, char* argv[]) { char […]

将Unicode / UTF8字符添加到C中的ncurses显示中

我正在尝试将wchar_t Unicode字符添加到C中的ncurses显示中。 我有一个数组: wchar_t characters[]={L’\uE030′, L’\uE029′}; // containing 2 thai letters, for example 之后我尝试将数组中的wchar_t添加到ncurses显示中: add_wch(characters[0]); 要提供更多信息,使用ASCII执行此操作正常,使用: char characters[]={‘A’, ‘B’}; // and later… addch(characters[0]); 要设置区域设置,我添加包含… #include // in main() setlocale(LC_CTYPE,”C-UTF-8″); ncurses包括: #include 编译: (编辑:添加了c99标准,用于支持通用字符名称。) gcc -o ncursesutf8 ncursesutf8.c -lm -lncurses -Wall -std=c99 我得到以下编译警告(当然可执行文件将失败): ncursesutf8.c:48: warning: implicit declaration of function ‘add_wch’ 我已经尝试过使用addch ,这似乎是宏用于wchar_t,但是当我这样做时,Unicode字符不会显示,而是显示为ASCII字符而不是。 有什么想法吗? 我正在使用OS X Snow […]

处理C中的特殊字符(UTF-8编码)

我正在用C编写一个小应用程序来读取一个简单的文本文件,然后逐个输出这些行。 问题是文本文件包含特殊字符,如Æ,Ø和Å等。 当我在终端中运行程序时,这些字符的输出用“?”表示。 有一个简单的解决方案吗?

UTF-8 – > C语言的ASCII

我有一个简单的问题,我无法在互联网上找到任何地方,如何在C中仅使用标准的lib将UTF-8转换为ASCII(大多数重音字符为相同的字符,无需重音)? 我找到了大多数语言的解决方案,但不是特别针对C语言。 谢谢! 编辑:评论的一些人让我仔细检查我需要什么,我夸大了。 我只需要一个关于如何创建一个函数的想法:带有重音的char – >没有重音的char。 🙂

在Windows和Linux下,在C中将UTF-16转换为UTF-8

我想知道是否有一个推荐的’交叉’Windows和Linux方法,用于将字符串从UTF-16LE转换为UTF-8? 或者每个环境应该使用不同的方法? 我设法谷歌几个引用’iconv’,但对于somreason我找不到基本转换的样本,例如 – 将wchar_t UTF-16转换为UTF-8。 任何人都可以推荐一种“交叉”的方法,如果您知道参考文献或带样本的指南,我将非常感激。 谢谢,Doori酒吧