0

我正在尝试将中文本地化添加到脚手架 Yesod 网站。我zh.msg在 Windows 中使用记事本将消息文件保存为 UTF-8 格式,但是当我cabal install在项目目录中运行时,我得到了这个:

Handler\Home.hs:15:11:
    Not in scope: data constructor `MsgHello'
    Perhaps you meant `Msg<stderr>: hPutChar: invalid argument (invalid character)

有问题的行是我呈现主页的位置:

$(widgetFile "homepage")

我将两个消息文件都更改为 Unicode 格式而不是 UTF-8,并改为获取此消息:

Foundation.hs:1:1:
    Exception when trying to run compile-time code:
    Cannot decode byte '\xff': Data.Text.Encoding.Fusion.streamUtf8: invalid UTF-8 stream

所以我想UTF-8是要走的路……不知何故。

(我正在使用记事本,因为我没有设置 gVim 来呈现 Unicode 字符。这显然是一个壮举。)

4

1 回答 1

0

当我去提交我的更改时,我发现了这个问题。我的英文文件的差异如下所示:

-Hello: Hello
+<U+FEFF>Hello: Hello

我猜记事本添加了字符,并且它正在进入 Haskell 代码。我根据this answer使用vim解决了它。

于 2013-09-10T13:05:37.330 回答