Unicode UTF-8在Lua/Corona中显示不正确

Unicode UTF-8在Lua/Corona中显示不正确,unicode,utf-8,lua,coronasdk,Unicode,Utf 8,Lua,Coronasdk,在Lua中,对于iPad Corona项目,我使用network.request请求一个包含中文字符的UTF-8服务器文本文件,但结果显示在控制台或应用程序中时显示为垃圾。例如,GoogleChrome显示相同的UTF-8页面,当服务器使用PHP将其发送到“内容类型:text/plain;字符集=utf-8',并且也没有BOM、字节顺序标记。我在Lua中看到的垃圾看起来类似于我使用选项菜单强制Chrome将页面呈现为ISO-8859-1 有人有什么帮助或建议吗? 如果所有这些都失败了,我将如何在

在Lua中,对于iPad Corona项目,我使用network.request请求一个包含中文字符的UTF-8服务器文本文件,但结果显示在控制台或应用程序中时显示为垃圾。例如,GoogleChrome显示相同的UTF-8页面,当服务器使用PHP将其发送到“内容类型:text/plain;字符集=utf-8',并且也没有BOM、字节顺序标记。我在Lua中看到的垃圾看起来类似于我使用选项菜单强制Chrome将页面呈现为ISO-8859-1

有人有什么帮助或建议吗? 如果所有这些都失败了,我将如何在Lua中将垃圾字符串转换回其UTF-8源


谢谢你的帮助

Lua对UTF-8一无所知;Lua字符串只是字节序列。听起来好像Corona本身正在将字符串解析为ISO8859-1。最可能的原因是他们做了一些非常愚蠢和幼稚的事情,比如把字符串的每个字节都当作一个Unicode代码点


恐怕我不知道Corona,所以无法提供任何具体的解决方案,但我建议看看它有哪些涉及编码的函数。例如,可能有一个特定的函数以特定的编码呈现字符串。

Lua对UTF-8一无所知;Lua字符串只是字节序列。听起来好像Corona本身正在将字符串解析为ISO8859-1。最可能的原因是他们做了一些非常愚蠢和幼稚的事情,比如把字符串的每个字节都当作一个Unicode代码点


恐怕我不知道Corona,因此无法提供任何具体的解决方案,但我建议看看它有哪些涉及编码的函数。例如,可能有一个特定的函数以特定的编码呈现字符串。

能否显示网络的代码。请求呼叫


如果要下载html页面,应使用network.download。

能否显示network.request调用的代码


如果你下载的是html页面,你应该使用network.download。

我也有同样的问题,除了日语字符。虽然Lua不支持UTF-8,但Corona的行为与之类似。这意味着。。。如果将UTF-8字符串传递给display.newText…,则它应该正确显示。现在,如果您输出到控制台,它将实际打印出字符串的原始字节。如果您试图打印字符串的长度,它实际上会打印出字节数

总之,Lua将所有字符串视为字节数组。它对UTF-8一无所知。某些Corona API方法在传递UTF-8字符串时,将正确显示字符串


当我把UTF-8和普通ASCII字符混合在一起时,我遇到了一些问题,我想我的意思是我把英语字符和日语字符混合在一起了。。。尽管如此,仍然是所有UTF-8。我有一种预感,字符串中的每个字符必须具有相同的字节长度,以便Corona正确显示。试着一次打印一个字符,看看这是否有帮助。如果你遇到麻烦,请随时在这里发表评论。我也想自己解决这个问题。

我也有同样的问题,除了日语字符。虽然Lua不支持UTF-8,但Corona的行为与之类似。这意味着。。。如果将UTF-8字符串传递给display.newText…,则它应该正确显示。现在,如果您输出到控制台,它将实际打印出字符串的原始字节。如果您试图打印字符串的长度,它实际上会打印出字节数

总之,Lua将所有字符串视为字节数组。它对UTF-8一无所知。某些Corona API方法在传递UTF-8字符串时,将正确显示字符串


当我把UTF-8和普通ASCII字符混合在一起时,我遇到了一些问题,我想我的意思是我把英语字符和日语字符混合在一起了。。。尽管如此,仍然是所有UTF-8。我有一种预感,字符串中的每个字符必须具有相同的字节长度,以便Corona正确显示。试着一次打印一个字符,看看这是否有帮助。如果你遇到麻烦,请随时在这里发表评论。我也想自己解决这个问题。

这看起来确实是个问题@菲利浦:考虑Twitter链接到这个问题,在问题文本下面用一个CARONASDK哈希标签看到小链接链接。我打赌你会很快得到帮助的。大卫,谢谢,你的解释很有道理。事实上,我同时把这篇文章发到了Corona bug论坛上。作为一个巨大的解决办法,我现在实际上发送的文本应该是汉语拼音,这是一种更为ASCII友好的中文抄写!这比展示可能不懂的英语要好,但在中国读者看来,这一定很愚蠢:这看起来确实是个问题@菲尔
LIP:考虑Twitter链接到这个问题,在问题文本下面用一个CARONASDK哈希标签看到小链接链接。我打赌你会很快得到帮助的。大卫,谢谢,你的解释很有道理。事实上,我同时把这篇文章发到了Corona bug论坛上。作为一个巨大的解决办法,我现在实际上发送的文本应该是汉语拼音,这是一种更为ASCII友好的中文抄写!这比展示可能不懂的英语要好,但在中国读者看来,这一定很傻:是的,我在使用网络。请求不是网络。下载。。。我将尝试一下后者,非常感谢!!是的,我正在使用网络。请求不是网络。下载。。。我将尝试一下后者,非常感谢!!