我有 String swift 5。字符串如下所示..
\n\nKawran Bazar FDC Road, East Nakhalpara, \xc3\xa0\xc2\xa6\xc2\xa8\xc3\xa0\xc2\xa6\xc2\xbf\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa7\xc3\xa0\xc2\xa6\xc2\xa4\xc3\xa0\xc2\xa6\xc2\xa8, \xc3\xa0\xc2\xa6\xc2\xa2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xbe, \xc3\xa0\xc2\xa6\xc2\xa2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xbe \xc3\xa0\xc2\xa6\xc2\xac\xc3\xa0\xc2\xa6\xc2\xbf\xc3\xa0\xc2\xa6\xc2\xad\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6, \xc3\xa0\xc2\xa6\xc2\xac\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xb2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc2\xa6\xc3\xa0\xc2\xa7\xc3\xa0\xc2\xa6\xc2\xb6\nRun Code Online (Sandbox Code Playgroud)\n\n我需要转换它。我尝试了如下
\n\n let data = location_name.data(using: .utf8)\n var str = String(decoding:data!, as: UTF8.self)\n print("location_name***",str)\nRun Code Online (Sandbox Code Playgroud)\n\n但需要像上面一样转换下面的字符串
\n\nKawran Bazar FDC Road, East Nakhalpara, \xe0\xa6\xa8\xe0\xa6\xbf\xe0\xa6\x95\xe0\xa7\x87\xe0\xa6\xa4\xe0\xa6\xa8, \xe0\xa6\xa2\xe0\xa6\xbe\xe0\xa6\x95\xe0\xa6\xbe, \xe0\xa6\xa2\xe0\xa6\xbe\xe0\xa6\x95\xe0\xa6\xbe \xe0\xa6\xac\xe0\xa6\xbf\xe0\xa6\xad\xe0\xa6\xbe\xe0\xa6\x97, \xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xa6\xe0\xa7\x87\xe0\xa6\xb6\nRun Code Online (Sandbox Code Playgroud)\n\n如何解决问题
\n这是如果 UTF-8 数据在某个时刻被解释为 Latin1 时得到的输出。例如:
\n\nlet s = "Kawran Bazar FDC Road, East Nakhalpara, \xe0\xa6\xa8\xe0\xa6\xbf\xe0\xa6\x95\xe0\xa7\x87\xe0\xa6\xa4\xe0\xa6\xa8, \xe0\xa6\xa2\xe0\xa6\xbe\xe0\xa6\x95\xe0\xa6\xbe, \xe0\xa6\xa2\xe0\xa6\xbe\xe0\xa6\x95\xe0\xa6\xbe \xe0\xa6\xac\xe0\xa6\xbf\xe0\xa6\xad\xe0\xa6\xbe\xe0\xa6\x97, \xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xa6\xe0\xa7\x87\xe0\xa6\xb6"\nlet utf8Data = Data(s.utf8)\nlet latin1 = String(data: utf8Data, encoding: .isoLatin1)!\nprint(latin1)\n\n==> \n\nKawran Bazar FDC Road, East Nakhalpara, \xc3\xa0\xc2\xa6\xc2\xa8\xc3\xa0\xc2\xa6\xc2\xbf\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa7\xc3\xa0\xc2\xa6\xc2\xa4\xc3\xa0\xc2\xa6\xc2\xa8, \xc3\xa0\xc2\xa6\xc2\xa2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xbe, \xc3\xa0\xc2\xa6\xc2\xa2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xbe \xc3\xa0\xc2\xa6\xc2\xac\xc3\xa0\xc2\xa6\xc2\xbf\xc3\xa0\xc2\xa6\xc2\xad\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6, \xc3\xa0\xc2\xa6\xc2\xac\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc3\xa0\xc2\xa6\xc2\xb2\xc3\xa0\xc2\xa6\xc2\xbe\xc3\xa0\xc2\xa6\xc2\xa6\xc3\xa0\xc2\xa7\xc3\xa0\xc2\xa6\xc2\xb6\nRun Code Online (Sandbox Code Playgroud)\n\n您应该首先尝试修复此问题并删除此错误的字符串创建。如果不能,那么您可以通过 Latin1 往返。
\n\nlet latin1Data = latin1.data(using: .isoLatin1)!\nlet utf8String = String(data: latin1Data, encoding: .utf8)!\n\nutf8String == s // true\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6576 次 |
| 最近记录: |