微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将变形的字符转换回UTF-8

如何解决将变形的字符转换回UTF-8

这是我所做的:

  1. 我转储了带有UTF-8数据(sqlite3 example.db .dump > dump.sql)的sqlite数据库,但是由于这是在powershell中,因此我假设管道将其转换为Windows-1252
  2. 我再次使用powershell(Get-Content dump.sql | sqlite3 example2.db)将转储的数据加载到新数据库
  3. 我转储了这个 new 数据库,并留下了一个新的.sql文件(这次是通过powershell来 not 的,所以我认为它没有被修改

这个新的sql文件的UTF-8字符已严重损坏,我想知道是否有办法将其转换回正确的UTF-8。

作为一些示例,以下是 new 文件中的一些序列,以及它们应该是什么(全部视为UTF-8):>

  1. ÒüéÒü¬ÒüƒÒü½ 应该是 あなたに
  2. ´╝ü 应为全角感叹号
  3. Òé¡Òé╗Òé¡ 应该是 キセキ

有人对我如何撤销这种破坏有任何想法吗?任何方法都将非常有帮助!

这是在Powershell 7.0.1中

编辑:

在进一步检查时,您可以通过将任何此类数据重定向到powershell中的文件来复制我的困境(请注意,数据本身无法输入到powershell中)。因此,设置这样的脚本会得到相同的结果:

test.sh

#!/bin/bash
echo "キ"

然后运行wsl ./test.sh > test.txt会得到Òé¡而不是

输出

编辑2:

似乎将UTF-8文本转换为的代码页几乎为 437:使用此假设可以还原某些字符(例如),而其他字符则不能。如果接近437,但不是,那会是什么?

解决方法

事实证明,因为我在英国,所以我想要的代码页是850。将文件另存为850,然后以UTF-8格式重新加载,解决了我的问题!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。