解决方法是:使用iconv转换
一、使用 iconv函数制作一个转码的自定义从GBK转到UTF-8的函数,如以下代码:
function enc($c){return iconv('gbk','utf-8',$c)}
二、为了写入数据库的编码是符合数据库需要的,所以我们还要制作一个从UTF-8转向GBK的函数:
function dec($c){return iconv('utf-8','gb2312',$c)}
制作好了转码函数,接下就是正常使用了。在从数据库里面调数据显示在页面的时候使用enc()函数,从页面提交数据到数据库时使用dec()函数,这样就可以很好的解决PHP使用UTF-8编码,ACCESS使用系统默认编码的问题了。
access插入的值出现乱码,把编码方式转换为“iso-8859-1”的,显示的中文数据就不是乱码了。原因可能是access数据库,中文需要的是iso-8859-1的编码方式。所以需要转换下。如下转换:
①String test = request.getParameter("txpage")
②String page=new String(test.getBytes("iso-8859-1"),"utf-8")
将要插入①中定义的名为:test数据,通过②的样式转换为新的String类型(把test数据当前网页的“utf-8”编码,转换为“iso-8859-1”编码。)
然后插入②中的page的数据到数据库,应该没乱码了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)