我需要在我的Java webapp(servlets + JSP,没有使用框架)中使用UTF-8来支持äöå
常规芬兰语文本和???
特殊情况下的西里尔字母.
我的设置如下:
使用的数据库:MySQL 5.x.
用户主要使用Firefox2,但Opera 9.x,FF3,IE7和谷歌Chrome也用于访问该网站.
怎么做到这一点?
我在从字符串中删除非utf8字符时遇到问题,这些字符无法正常显示.字符是这样的0x97 0x61 0x6C 0x6F(十六进制表示)
删除它们的最佳方法是什么?正则表达式还是其他什么?
我在网站上有一个文本区域,用户可以在其中编写任何内容.当用户复制粘贴某些文本或包含非UTF 8字符的内容并将其提交给服务器时,会出现问题.
Java成功处理它,因为它支持UTF-16,但我的mySql表支持UTF-8,因此插入失败.
我试图在业务逻辑本身中实现某种方式,删除任何不适合UTF-8编码的字符.
目前我正在使用此代码:
new String(java.nio.charset.Charset.forName("UTF-8").encode(myString).array());
Run Code Online (Sandbox Code Playgroud)
但它用其他一些不起眼的字符替换不适合UTF-8的字符.这对最终用户来说也不好看.请问有人可以使用Java代码解决任何可能的解决方案吗?
编辑:例如,插入这些值时我得到的异常
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8A\x0D\x0A...' for column
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80\xF0\x9F...' for column
Run Code Online (Sandbox Code Playgroud) 更新: - 似乎我必须提供返回xml的URL.这是 - URL
我在解析xml时遇到了SAXParseException.我试图解析的xml如下 -
<?xml version="1.0" encoding="utf-8"?>
<markers xmlns="">
<marker name="" address1="" address2="" region="" country="" zip="" imgsrc="" lat="" lng="" distance="" />
<marker name="" address1="" address2="" region="" country="" zip="" imgsrc="" lat="" lng="" distance="" />
<marker name="" address1="" address2="" region="" country="" zip="" imgsrc="" lat="" lng="" distance="" />
<marker name="" address1="" address2="" region="" country="" zip="" imgsrc="" lat="" lng="" distance="" />
<marker name="" address1="" address2="" region="" country="" zip="" imgsrc="" lat="" lng="" distance="" />
</markers>
Run Code Online (Sandbox Code Playgroud)
我用来解析这个xml的代码如下 -
public Document getDomElement(String xml) { …
Run Code Online (Sandbox Code Playgroud)