在我的代码中,我使用了人名。例如,其中一个是:
const char *translators[] = {"Jörgen Adam <adam@***.de>", NULL};
并包含ö'带有DIAERESIS的拉丁文小写字母'
当我编写代码时,使用哪种格式
UTF-8:
Jörgen Adam
或
UTF-8(十六进制):
J\xc3\xb6rgen Adam
更新:
带有姓名的文字将在GTK中打印关于Dialog(翻译人员姓名)
答案 0 :(得分:2)
答案很大程度上取决于这是在评论还是字符串中。
如果它在评论中,毫无疑问:你应该使用原始的UTF-8,所以它应该显示为:
/* Jörgen Adam */
如果读取文件的用户配置错误/遗留系统将文本视为UTF-8以外的其他内容,则会以其他方式显示,但这只是一个注释,因此不会影响代码生成,丑陋是他们的问题。
另一方面,如果UTF-8在字符串中,您可能希望即使编译时字符集不是UTF-8也能正确解释代码。在这种情况下,您最安全的赌注可能是使用:
"J\xc3\xb6rgen Adam"
可能在那里使用UTF-8文字实际上也是安全的;我不是100%清楚C的非宽字符串文字和编译时字符集的处理规范。除非你能说服自己这是正式的安全而且没有打破你需要支持的编译器,但是我会坚持使用hex。