【问题标题】:iPhone: Nsstring has an óiPhone:Nsstring 有一个 ó
【发布时间】:2010-01-30 14:36:16
【问题描述】:

大家好,我有一个 NSString,里面有一个 ó,所以当我把它放在一个 TextView 中时,我会读到“ó”,我会读到“A³”。

这就是我所做的:

self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@"ó" withString:@"ó"];

但它不起作用,我不知道为什么......

正在为此工作:

/* á*/ self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@"á" withString:@"á"];

/* é */ self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@"é" withString:@"é"];

/* í */ self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@"Ã" withString:@"í"];

/* ú */ self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@"ú" withString:@"ú"];

但不适用于“ó” 这是为什么呢?

最好的问候 卡洛斯·巴尔加斯

【问题讨论】:

  • 你检查过原始字符串和新字符串的编码吗?我的第一个猜测是有问题,可能最好使用 UTF-8。您可能还想查看文档以获取更多信息:developer.apple.com/iphone/library/documentation/Cocoa/…
  • 是的,原始字符串来自 mysql,但是通过转换器我将 mysqlt DB 转换为 sqlite,这就是它在 mysql 中的样子“√≥”,即“ó”
  • 是错字还是 textview 中的 A 没有重音符号?

标签: iphone nsstring


【解决方案1】:

这是一个字符串编码问题,您不应该通过手动替换字符来解决此问题,而是在初始化这些字符串时使用正确的编码构建这些字符串。

如果这些字符串来自某个编码不同于 UTF-8 的数据库,那么您可以使用以下示例将该编码指定为 NSString:

NSString* string = [NSString stringWithCString: buffer
    encoding: NSISOLatin2StringEncoding];

确保首先了解源如何编码字符串。字符串编码类型有很多,但 iPhone 将支持其中的大部分。

【讨论】:

  • 我已经完成了 stringEncoding 并且 NSISOLatin2StringEncoding 它给了我这个:“ĂÂł”而不是“ó”,这就是我尝试自己替换它的原因
  • 那么它可能不是 ISO Latin-2。
  • 实际上我已经尝试了所有我发现的 NSStringEnconding 格式,但没有一个有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多