我正在使用Lift Framework
,GlassfishV3
开发一个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/