我正在为使用 .tmx 地图文件的 iOS 编写游戏。我在应用程序“平铺”中创建地图,然后在它们到达 iOS 之前的某个时间点,我用 Perl 解析它们。
当我将文件保存为直接 XML 时,perl 可以轻松解析它们。然而,cocos2d 坚持文件是 base64 编码的。“平铺”地图编辑器使用这种编码方案保存文件没有问题,iOS 可以很好地读取它们,但它给我的 perl 代码带来了问题。
出于某种原因,perl 中的标准 MIME::Base64 decode_base64() 方法在这里并没有减少芥末——当我解码字符串时,我得到一两个二进制字符——菱形框中的问号等。
TMX 文件格式的模糊文档使得不清楚在 base64 编码之前或之后是否有其他编码可能导致此问题。我查看了编码器的 cpp 源代码,看到了很多对 Latin1 的引用,但我无法详细解读发生了什么。
我注意到,当我尝试使用 MIME::Base64 进行自己的测试、编码然后解码测试字符串时,编码的文本看起来与我从 TMX 文件中看到的截然不同——例如,我的 base64 编码短字符串的文本如下所示:
aGVyZSBpcyBhIHNlbnRlbmNl
但是来自 TMX 文件的 base64 编码文本如下所示:
9QAAAAABAAANAQAAGAEAAA==
关于我可能尝试解码看起来像这样的字符串的任何其他建议?