java – 从String中删除不适合UTF-8编码的字符
我在网站上有一个文本区域,用户可以在其中编写任何内容.当用户复制粘贴某些文本或包含非UTF 8字符的内容并将其提交给服务器时,会出现问题. Java成功处理它,因为它支持UTF-16,但我的mySql表支持UTF-8,因此插入失败. 我试图在业务逻辑本身中实现某种方式,删除任何不适合UTF-8编码的字符. 目前我正在使用此代码:
但它用其他一些不起眼的字符替换不适合UTF-8的字符.这对最终用户来说也不好看.请问有人可以使用Java代码解决任何可能的解决方案吗? 编辑:例如,插入这些值时我得到的异常
最佳答案
UTF-8不是字符集,它是一种字符编码,就像UTF-16一样.
UTF-8能够将任何unicode字符和任何unicode文本编码为字节序列,因此不存在不适合UTF-8的字符. 您正在使用String的构造函数,它只接受一个字节数组(String(byte[] bytes)),根据javadocs:
它使用平台的默认字符集来解释字节(将字节转换为字符).不要使用它.而是在将字节数组转换为String时,使用String(byte[] bytes,Charset charset)构造函数指定要明确使用的编码. 如果您遇到某些字符的问题,那很可能是由于在服务器端和客户端使用不同的字符集或编码(brownser HTML).确保在任何地方都使用UTF-8,不要混合编码,也不要使用平台的默认编码. 一些阅读如何实现这一点: How to get UTF-8 working in Java webapps? (编辑:商洛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |