lua中的中文乱码

最近在用lua, 发现一个有点意思的槽点啊-____-! 那就是lua貌似会使用系统所用的字符集.

具体点说, 就是在windows上, 它会使用cp936来表示代码中的中文.

来个例子:

print("中文")

把这句代码写到文本文件里, 保存的时候选择UTF-8的话, 这时你运行代码, 是会得到下面的中文乱码的:

  涓枃

但如果你把代码存为ANSI格式, 那么就能得到正确的"中文"了.

所以在使用lua时, 如果代码中含有中文的话, 请留意一下使用的环境.

ps:

为了验证我的想法, 特意在cygwin环境下试了下. 我把环境设置为

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ8AAAA0CAIAAAAbhyqzAAADsElEQVR4nO2cz2rbMBzH9VQ+5EV21Smv0EfwNYe9RDE7DZJDKYPC2KHgS0lLF2hKS0LTdK3WcyA72JF/+mNbZLJlx98POtiWpfgn62NLFi0TAAA3WOgLAKA3wBYAXIEtALgCWwBwRbFlvlwhISHRZLdlvlztAQAqVBhGVWnyJQZAL6HCwBYAqoAtALgCWwBwBbYA4ApsAcAV2AKAK0fZksZRFKf/+cteKvFNGkfsAE86epEgFLClII0jVlxSwhnjse+L9Bt199rwtIEtBZYL8n6RsKXPeLKlGMHwJD+UcKYcKva1QU5RNvCdt/S8NI6iOOa1gXAeMcY417LU03lyCNUaOKknIb+vNI1SRK0NNI8XW9I4yu/wYas4IkTCtfuZFc8rIXWFflLabZGd1/qMyDtt2UvJaIdEVmIEbqkn4VnpvBpbEajSIj5sobsVd5HOoOU59GDo52TZuyXVtq2ByHPKsioqyc5OzEbLTzJeLBVFQIO0Zgt5w9Bz6MM3NDXzlny7JBAhSmO0VmgGXv6iSLgcx7kWAU3Q2kjsMKiQB8yxSmhzar6JFbZYAxHCzKoZiamB22eD0i310VJWBDTJsbbQEUE2otZHUvosXymkd7Lww7CMqvWWw3Z5IEaWEEY7ZLva9wI5y7e829Sm0dqK1gYaB2v5ALgCWwBwBbYA4ApsAcCVY2yZpQ9n59dfvv7odTo7v56lDzSu27v7i8ur5Nt3pMGmi8ur27t7n7b8/P3nZv3Z0L/VaI2b9eds/krjenp+3byJ0NcFQrJ5E4vl2rMtoYPyg2lL6CsC4YEtdmALMIEtdmALMGnWlsVkJNevx9MwER5HpS3TsRJNvjsdM53xVGkCxkaTBf0VmakdB92kQVsWkxHpBdNxr4Q5whb77mIyKlNhMRnlZ07H8KUPNGdLRTfpAS3ZcsjSqgDdpDFb+i1LK7YUeZClHwzUFmOGwRhj9ASftijzGJU8t8MtNSRqe8VAbdkbTaPlNvduyT8GZB8A8qzON9ZgqO4Vg563lDXKvsYWNTQ9UNeRGM3pQWMNhopeMfRvYtZG2dettyhC6JMO53lL8SWs+DoGukBZr8B6i5261UkSmS6D+yyfLNH0q3WGCtby7WAtH5jAFjuwBZjAFjuwBZjAFjuwBZjAFjuwBZj4twV/OwlOEv9/O/n48vHr6e8JpMeXDxrXdvv+vPlAGnjabt992gLAMIEtALhisWW328lDAADJfLna7XbZNpNHM2GQkJBokqoIIf4B81Wnh7Z+bh8AAAAASUVORK5CYII=" alt="" />

此时, 如果运行代码格式为UTF-8的lua代码, 则可以正确输出中文, 如果保存为ANSI格式的话, 则会输出乱码.

不过具体导致这个结果的原因, 可能就需要去瞅下lua的代码了.

上一篇:P3919 【模板】可持久化数组(可持久化线段树/平衡树)


下一篇:如何在没有https环境下使用webrtc