相关疑难解决方法(0)

NSLog编码错误

我遇到以下代码的问题:

NSString *strValue=@"??";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
NSLog(@"%s", temp);
Run Code Online (Sandbox Code Playgroud)

在代码的第一行,两个汉字是双引号.问题是printf函数可以正确显示汉字,但NSLog不能.


谢谢大家.我找到了解决这个问题的方法.基金会默认使用UTF-16,所以为了在示例中使用NSLog输出c字符串,我必须使用cStringUsingEncoding来获取UTF-16 c字符串并使用%S来替换%s.

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)

objective-c

12
推荐指数
2
解决办法
2万
查看次数

将带有变音符号的NSString转换为const char *

我花了几个小时来解决这个问题,却一无所获。抱歉,如果答案在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)

encoding diacritics char nsstring

2
推荐指数
1
解决办法
2091
查看次数

标签 统计

char ×1

diacritics ×1

encoding ×1

nsstring ×1

objective-c ×1