我遇到以下代码的问题:
NSString *strValue=@"??";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
NSLog(@"%s", temp);
Run Code Online (Sandbox Code Playgroud)
在代码的第一行,两个汉字是双引号.问题是printf函数可以正确显示汉字,但NSLog不能.
NSString *strValue=@"??";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
strcpy(temp, [strValue cStringUsingEncoding:NSUTF16LittleEndianStringEncoding]);
NSLog(@"%S", temp);
Run Code Online (Sandbox Code Playgroud) 我花了几个小时来解决这个问题,却一无所获。抱歉,如果答案在Internet上的某个地方,我真的找不到。
我有一个NSString *header = @"ästrç";或其他来自德语,瑞典语等语言的变音符号。
我需要将其NSString转换为:
const char* cString = [header cStringUsingEncoding: NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
注意:NSASCIIStringEncoding,NSMacOSRomanStringEncoding不起作用。
我也试过这个:
const char *cString = [header UTF8String];
Run Code Online (Sandbox Code Playgroud)
不工作
有谁可以帮助我吗?这很奇怪。
编辑:
“不工作”是指如果我有这些字符:

它将输出以下内容:

我不在乎NSLog。我需要const char *才能用PDF编写方法:
HPDF_Page_TextOut (HPDF_Page page, HPDF_REAL xpos, HPDF_REAL ypos, const char *text)
Run Code Online (Sandbox Code Playgroud)