【问题标题】:Convert NSString with umlauts to const char *将带有变音符号的 NSString 转换为 const char *
【发布时间】:2012-02-24 10:49:39
【问题描述】:

我看了几个小时来解决这个问题,但一无所获。抱歉,如果网上某个地方有答案,我真的找不到。

我有一个NSString *header = @"ästrç"; 或来自德语、瑞典语等语言的任何其他变音符号。

我需要将此NSString 转换为:

const char* cString = [header cStringUsingEncoding: NSASCIIStringEncoding];

注意:NSASCIIStringEncodingNSMacOSRomanStringEncoding 不起作用。

我也试过这个:

const char *cString = [header UTF8String];

不工作。

有人可以帮帮我吗?这很奇怪。

编辑:

“不工作”是指如果我有这些字符:

它会输出这个:

我不关心 NSLog。我需要 const char * 来编写 PDF:

HPDF_Page_TextOut  (HPDF_Page    page, HPDF_REAL    xpos, HPDF_REAL    ypos, const char  *text)

【问题讨论】:

  • 最后一个 (-[NSString UTF8String]) 应该可以工作。定义“不工作”。

标签: encoding nsstring char diacritics


【解决方案1】:

const char *cString = [header UTF8String] 可以,但您可能正在使用它进行测试 NSLog("%s, cString);.

NSLog 将不起作用,因为 %s 期待 ASCII 字符串而不是 UTF-8

详情:convert NSString to const char *

【讨论】:

  • 我已经看过了,还有很多其他的帖子。只是它不能满足我的需要。看看我上面的编辑。
  • @benyboariu 你必须了解你的HPDF_Page_TextOut 函数接受什么编码。
  • 我不知道我的心在哪里。当然,我必须查看该方法接受的编码。现在工作。非常感谢。
猜你喜欢
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多