lua:1:'ï'附近的意外符号

时间:2012-11-03 09:21:45

标签: c# lua

更具体地说,完整错误是

  

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

我已使用不同的编辑器检查LuaTest.lua文件以包含Notepad ++,但找不到任何额外/隐藏的字符。我对可能导致这种情况的原因感到茫然。
旁注,我正在遵循本指南: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 个答案:

答案 0 :(得分:5)

这可能是由某些文本编辑器放置在Unicode文本文件开头的Byte Order Mark引起的。 BOM的字节包括0xEF,这是ï的ISO 8859-1 character code(带有变音符号的拉丁语小写)。

所以你的猜测是正确的,那里有 个隐藏字符。在编写文本文件时,将文本编辑器配置为使用BOM。