gpt4 book ai didi

mysql - 如何在 iOS 中处理 Windows-1252 字符?

转载 作者:可可西里 更新时间:2023-11-01 08:52:16 25 4
gpt4 key购买 nike

我已经做了研究,但似乎没有找到明确的答案。

我的问题如下:我有一个 mysql 数据库,我将它(借助脚本)转换为 sqlite 数据库。在原始数据库(以及 sqlite)中,我发现了一些包含以下字符的条目:“、”、“、”、...(Windows-1252?)还有一些 HTML 代码。

我用原始的 mysql 数据库在 PHP 中做了一个测试,字符显示得很好,只要我添加了内容类型 utf-8,否则我得到了相同的奇怪字符 ', ' ™, ë, ±。

我在 iOS 中尝试了以下方法:

[[NSString alloc] initWithCString:(const char *) sqlite3_column_text(rs.statement.statement, 4) encoding:NSStringEncodingConversionExternalRepresentation];

[NSString stringWithUTF8String:[[[rs stringForColumn:@"tekst"] stringByDecodingHTMLEntities] cStringUsingEncoding:NSStringEncodingConversionExternalRepresentation]];
  • NSStringEncodingConversionExternalRepresentation
  • NSUTF8StringEncoding
  • NSISO2022JPStringEncoding
  • NSStringEncodingConversionAllowLossy
  • NSWindowsCP1252StringEncoding
  • ...

然后我发现了这个: MWFeedParser NSString+HTML

通过这些类,我能够将 HTML 和 ë 转换为 ë。另一方面,其他字符似乎不起作用。

那么,如何转换/编码/解码这些字符才能正常显示呢?

最佳答案

您是否尝试先修复 HTML 编码?我想它是最后应用的。如果您可以获得一些示例字符串,请编写一个快速而粗略的测试应用程序,并尝试弄清楚编码是如何进行的。

1) 您可以尝试此列表中的其他编码:

NSISOLatin1StringEncoding = 5,
NSISOLatin2StringEncoding = 9,
NSWindowsCP1251StringEncoding = 11,
NSWindowsCP1252StringEncoding = 12,
NSWindowsCP1253StringEncoding = 13,
NSWindowsCP1254StringEncoding = 14,
NSWindowsCP1250StringEncoding = 15,

2) 如果 Apple 没有提供正确的编码,但它是已知的编码,那么您可以使用 iconv(),它在 mac 和 iOS 上都可用。它几乎可以将每个字符串编码转换为几乎任何其他编码 - 使用起来有点复杂,但您会在网上找到很多示例。

关于mysql - 如何在 iOS 中处理 Windows-1252 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com