我正在使用Lift FrameworkGlassfishV3开发一个Web应用程序,但是我的应用程序中存在变音符号问题。我只是将值绑定(bind)到模型,并且当我从输入文本字段记录值时,变音符号已损坏。问题可能在哪里?

     bind("entry",content,
              "place" -> SHtml.text(lib.place, lib.place=_),
              "submit" -> SHtml.submit("Kaboom", () => {
                    Logger.getAnonymousLogger.severe(lib.place)
                    Service.library.save(lib)})
        )

这可能是一个一般的Java问题,不仅限于Lift
我输入š,然后看到Å¡作为记录器的输出。

最佳答案

知道整个问题的根源位于键盘和椅子靠背之间,会让您感到好还是坏?

这是发生了什么:

您想打印出š,即lower-case s-with-caron,在Unicode中用数字0x161表示。您将其打印到文件中,然后您的I / O系统(正确地)在UTF-8中将其编码为0xC5、0xA1。然后,您要求查看该文件,而没有向您的查看程序说明它是UTF-8文件。无论您的查看程序是什么,都将文件解释为ISO 8859-1,这是一种非常常见的格式(即使有些陈旧)。 0xC5显示为Å,A-with-a-ring,0xA1显示为¡,inverted exclamation mark

总而言之,输出没有什么问题,您查看它的方式也有问题。在编辑器中打开日志并将编码设置为UTF-8或在Web浏览器中将其打开,然后选择“查看/字符编码/ UTF-8”。

关于scala - 电梯不能处理变音符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4504954/

10-10 02:21