php抓取网页数据插入数据库(又遇到乱码问题,这个编码问题有时候真是让人头大)

优采云 发布时间: 2022-01-23 23:22

  php抓取网页数据插入数据库(又遇到乱码问题,这个编码问题有时候真是让人头大)

  我又遇到了乱码的问题。这个编码问题有时真的很烦人。找了半天也没查出什么问题。页面和数据库都是utf8编码的,但是还是有乱码。直接在命令行下将中文数据插入数据库时​​,不会出现乱码。在程序中使用代码插入时,会出现乱码。控制台打印的数据没有乱码。乱码问题终于通过搜索资料解决了,但还是有些不明白问题出在哪里。

  通过将 ?useUnicode=true&characterEncoding=UTF-8 添加到数据库连接 url 来解决问题:

  应用程序上下文.xml

  我处理编码的过滤器:

  public class EncodingFilter implements Filter {

private FilterConfig config;

private String charset = "UTF-8";

public void init(FilterConfig filterconfig) throws ServletException {

config = filterconfig;

String s = config.getInitParameter("encoding");

if (s != null) {

charset = s;

}

}

public void destroy() {

config = null;

}

public void doFilter(ServletRequest servletrequest,

ServletResponse servletresponse, FilterChain filterchain)

throws IOException, ServletException {

servletrequest.setCharacterEncoding(charset);

servletresponse.setCharacterEncoding(charset);

filterchain.doFilter(servletrequest,servletresponse);

}

}

  测试的过滤器确实被执行了。

  数据库使用 utf8 编码:

  

  jsp 页面和所有 Java 文件都使用 utf8 编码。

  我看不出问题出在哪里。我现在很着急。我先解决问题,有时间再研究一下编码问题。遇到过很多次,但是这个编码问题不能小觑。上次在程序中使用utf8编码的url地址访问windows服务器上的资源文件,出现404,可以用gbk代替。还有一次发现页面在低版本chrome下有一些CSS失效问题,但是在ie和高版本chrome下都没有问题。当时我还以为是CSS兼容性问题。后来发现无效部分在CSS文件中。中文注释后的样式,如果去掉中文注释,可以正常显示。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线