【发布时间】:2012-07-16 03:50:24
【问题描述】:
我已经完成了我的研究,但似乎没有找到一个明确的答案。
我的问题如下: 我有一个 mysql 数据库,我将它(在脚本的帮助下)转换为 sqlite 数据库。 在原始数据库(以及 sqlite)中,我发现了一些包含以下字符的条目: â€~, ’, ë, ñ, ... (Windows-1252?) 还有一些 HTML 代码。
我在 PHP 中使用原始 mysql DB 进行了测试,字符显示很好,只要我添加了 content-type 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 和 ë 转换为 ë。 另一方面,其他字符似乎不起作用。
那么,如何转换/编码/解码这些字符才能正常显示?
【问题讨论】:
-
你为什么要在客户端这样做而不是在服务器上修复数据?
-
数据库主要用于网站,我不是所有者。
-
如果你不能确定数据的格式,可以在你的问题中添加一些十六进制格式的字符串,即“08AB7BCD...”,让别人来破解。
标签: mysql objective-c ios sqlite