Lua:1:'ï'附近有意外符号

3
更具体地说,完整的错误信息如下:

../../Scripts/LuaTest.lua:1: 'ï' 附近有意外符号

我已经使用不同的编辑器(包括Notepad++)检查了LuaTest.lua文件,并没有发现任何额外/隐藏字符。我不知道是什么导致了这个问题。
顺便说一下,我正在遵循这个指南:Godpatterns: Scripting with Lua in C#

以下是主要代码块:

class Program
{
    static void Main(string[] args)
    {
        Lua lua = new Lua();
        Program program = new Program();

        // register our C# functions
        lua.RegisterFunction("DanSays", program, program.GetType().GetMethod("DanSays"));
        lua.RegisterFunction("ThorSays", program, program.GetType().GetMethod("ThorSays"));

        lua.DoFile("../../Scripts/LuaTest.lua");
        Console.ReadLine();
    }

    public void DanSays(string s)
    {
        Console.WriteLine("Dan Says > " + s);
    }
    public void ThorSays(string s)
    {
        Console.WriteLine("Thor says > " + s);
    }

}

此外,这里有一个名为 LuaTest.lua 的文件。
DanSays("Hey, Thor!");
ThorSays("Hi Dan! You know Thursdays . . . ");
DanSays("*sigh* yeah, Thor, I know Thursdays.");
ThorSays("Named after me you know!");
DanSays("Yeah, I know.");
1个回答

5
这很可能是由于某些文本编辑器在Unicode文本文件开头放置字节顺序标记所致。BOM的字节包括0xEF,它是ISO 8859-1字符编码中的ï(带分音符的小写拉丁字母i)。
因此,你的猜测是正确的,那里面确实有隐藏字符。请配置你的文本编辑器,在编写文本文件时不要使用BOM。

谢谢Greg,每天都能学到新东西。这里是有关Visual Studio中BOM的链接:utf-8 without BOM in visual studio 2010 - user1796217

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接