精华内容
下载资源
问答
  • 2021-03-08 20:12:42

    java中FileOutputStream中文乱码问题解决办法

    java中FileOutputStream中文乱码问题解决办法

    使用FileOutputStream序列化可以直接向文件写入文本内容,代码如下:

    FileOutputStream outStream = new FileOutputStream(file);

    outStream.write(str.getBytes());

    outStream.close();

    但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutputStream是字节流,将文本按字节写入文件,而一个汉字是两个字节,无法一次写入,就会出现乱码,解决方法是使用OutputStreamWriter将字节流转换为字符流写入,同时指定utf-8编码。

    代码如下:

    OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8");

    oStreamWriter.append(str);

    oStreamWriter.close();

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    时间: 2017-04-03

    本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $

    更多相关内容
  • c++实现txt文件的读写,并解决txt编码格式为UTF-8显示乱码问题
  • 注意:这个与数据库乱码的情况不同,属于文件内容的乱码。 2,分析 Linux系统与windows系统在编码上有显著的差别。Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8。这两个系统就...

    1,示例

    图中名为一个.sql文件的一段内容,是一个数据库文件。其在windows中打开显示正常,在Linux中,中文部分显示为乱码。

     注意:这个与数据库乱码的情况不同,属于文件内容的乱码。

    2,分析

    Linux系统与windows系统在编码上有显著的差别。Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8。这两个系统就好比是中国和日本。文件就好比是一个人,如果要在另外的国家居住就要办理居住许可证,使用他国的证件(编码和字符集),否则是不被允许的黑户。因此,解决中文乱码问题要从编码和字符集着手。

    文件出现编码错误的原因:
    当前系统的字符集有问题
    某个文件的编码有问题

    3,解决方案

    3.1方案一:从系统的字符集处理

    当系统中多个文件的内容出现乱码问题,或者中文文件名显示乱码时,就先从系统的字符集处理。

    常用字符集:

    中文
    LANG=“zh_CN.UTF-8”

    英文
    LANG=“en_US.UTF-8”

    LANG=C

    1,查看字符集

    <1>查看当前系统默认采用的字符集

    locale

     <2>查看系统当前字符集

    echo $LANG

    <3>查看系统是否安装中文字符集

    出现zh开头的,即为安装了中文字符集
    如未安装,需执行: yum -y groupinstall chinese-support

    locale -a |grep zh

     2,修改系统字符集

    <1>修改系统字符集为中文

    如果前面查看到的系统当前的字符集是英文,通常修改系统字符集为中文即可成功。

    临时修改(当前终端生效):
    export LANG="zh_CN.UTF-8"
    
    永久修改:
    echo "export LANG="zh_CN.UTF-8"  >> /etc/proflile
    source /etc/profile

    <2>查看

    echo $LANG

    3.2 解决方法二:从文件的编码处理

    当系统的字符集为中文,文件的中文部分仍然显示乱码,就从文件的编码格式处理。

    1,查看文件编码

    <1>查看文件编码(vim方式)

    用vim打开文件,输入:set fileencoding

     

     fileencoding后即为该文件编码格式

    <2>查看文件编码(file方式)

    file  文件名
    或
    file --mime-encoding 文件名

     2,修改文件的字符集

    <1>文件的编码转换(vim方式)

    这个方法,仅在vim查看时进行编码转换,文件实际上本身编码并未转换,仅仅只是可看到。

    临时转换:
    用vim打开文件,输入:set fileencoding=utf-8
    
    永久转换(先确认vimrc位置):
    echo "set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936" >> /etc/vimrc
    或
    echo "set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936" >> ~/.vimrc
    
    vim会依照fileencodings提供的编码列表,查找合适的编码,如果没有找到就用latin-1(ASCII)编码打开.

    <2>文件的编码转换(iconv方式)

    该命令可进行文件内容的编码转换,并输出到其他位置(文件)

    命令参数
    -f encoding   把字符由原来的编码开始转换 
    -t encoding   把字符转换为新编码
    -l            列出支持的编码字符(可选)
    -o file       指定输出文件(可选) 
    -c            忽略输出的非法字符(可选)
    -s            禁止输出警告信息(可选)
    --verbose     显示进度(可选)

    {1}.列出当前支持的字符编码

    iconv -l

     {2}.编码转换

    基本格式:
    iconv  -f 原编码  -t 新编码   原文件 -o 新文件
    或
    iconv  -f 原编码  -t 新编码   原文件  > 新文件
    
    示例:将UTF-8编码的wx.txt文件转换为GB2312编码的test01.txt
    iconv -f UTF-8 -t GB2312 wx.txt -o test01.txt

    <3>文件名编码转换(convmv方式)

    该命令可转换文件名的编码(只是文件名编码的转换,文件内容不会发生变化)
    安装命令:yum -y install convmv

    命令参数
    -f           后面是原来的编码方式
    -t           后面是要转换为的编码方式
    -r           递归处理子文件夹
    -i           询问每一个转换
    --notest     真实的执行,在默认情况下只会测试(只能以root权限执行)

    {1}编码转换

    基本格式:
    convmv -f 原编码 -t 新编码 --notest(可选)  文件名
    或
    convmv -f 原编码 -t 新编码 --notest(可选)   -r 目录名
    
    
    示例:将read目录下的UTF-8编码的文件名转换为GBK编码
    convmv -f UTF-8 -t GBK --notest   -r  read/
    

    <4>文件的编码转换(enca方式)

    该工具能自动识别文件编码,且支持批量转换
    安装命令:yum -y install enca

    {1}.编码转换

    基本格式    
    enca -L 原编码 -x 新编码  文件名    
    或
    enca -L 原编码 -x 新编码  目录名
    
    
    示例1:把当前目录下的所有文件都转成utf-8    
          enca -L zh_CN -x utf-8 *     
    
    示例2:检查文件的编码 
          enca -L zh_CN test.txt
            
    示例3:将test.txt文件编码转换为"UTF-8"编码  
          enca -L zh_CN -x UTF-8 test.txt
              
    示例4:将test.txt文件编码转换为"UTF-8"编码,并输入test2.txt中
          enca -L zh_CN -x UTF-8  < test.txt  > test2.txt

    展开全文
  • navicat中文乱码问题解决方法

    千次阅读 2019-01-07 17:18:16
    问题背景 日常工作中,应研发同事的需求,从开发环境复制数据到测试环境,使用工具为Navicat Premium,复制结束后,开发同事发现服务调用数据时报错,经过检查发现,复制后的所有表中文乱码,使用SQLyog查看,选择...

    问题背景

    日常工作中,应研发同事的需求,从开发环境复制数据到测试环境,使用工具为Navicat Premium,复制结束后,开发同事发现服务调用数据时报错,经过检查发现,复制后的所有表中文乱码,使用SQLyog查看,选择一张表,选择“栏位”,右键选择“管理列”查看,发现所有注释均为乱码
    直接数据传输
    复制过程直接选择的数据传输,往新的环境复制时,没有创建数据库。
    错误如下,所有注释均为乱码:
    错误图

    解决方法

    经过检查,发现是复制时设置有误,如图
    错误图
    关闭数据库,编辑连接,发现“编码”格式选成了UTF-8,这个格式导致复制后的数据库出了问题,所以此处改为“自动”
    正确图

    注意事项

    • 不管是源数据库还是目标数据库都选成“自动”,否则就会出错,都选择“UTF-8”也会出错
    • 最好还是导入导出sql文件的方式更好,方便查问题
    • 建议使用SQLyog数据库工具,能避免出现类似小错误
    展开全文
  • 中文乱码解决 三、网址或超链接传参 中文错误解决 四、JSP子动作传参 中文乱码解决 Hello!大家好,我是灰小猿,一个超会写bug的程序猿! 最近在做JavaWeb相关项目开发的时候,需要使用超链接进行两个页面之间...

    在Web应用程序中,经常需要完成客户端与服务器之间的信息交互,这就需要页面之间的参数传递,这篇文章将会和大家分享JSP常用的三种传参方式及中文乱码的解决方案。

    目录

    一、访问请求参数的方法

    二、form表单传参

    中文乱码解决

    三、网址或超链接传参

    中文错误解决

    四、JSP子动作传参

    中文乱码解决


    Hello!大家好,我是灰小猿,一个超会写bug的程序猿!

    最近在做JavaWeb相关项目开发的时候,需要使用超链接进行两个页面之间的值传递,但是在进行传输时发现,使用hraf=URL的形式进行页面跳转和值传递时,在传递中文和英文之间出现了问题,因此在这里对三种常见的传参方式及中文乱码问题解决和大家总结分享一下。

    我们知道在javaweb中进行值传递的方法常用的有三种,分别是:

    1. 使用JSP的forward或include动作,利用传参数子动作实现参数的传递,‘

    2. 在JSP或HTML页面中,利用表单传递参数,

    3. 利用追加在网址后的参数传递或追加在超链接后的参数传递
      需注意的是:在上述的三种传参方式中,方式1和方式3属于get类型的参数提交方式,而方式2属于get或post方式的参数提交方式,它可以通过form的method属性进行参数的选择,

    get请求与post请求的不同之处是前者参数会显示在地址栏。

    get请求:

    post请求:

     

    一、访问请求参数的方法

    同时,request对象的getParameter()方法可以接收不同的来自于JSP页面或JSP动作传递给request对象的参数信息。该方法的使用格式如下:

    String 字符串变量 = request.getParameter("客户端提供参数的name属性名");

    其中需要注意的是:参数name与客户端提供参数的name属性名应该相同,同时request对象的getParameter()方法返回的是string类型的参数,如果参数name的值不存在,则会返回空值null

    接下来分别对这三种传参方式进行介绍:
     

    二、form表单传参

    表单界面代码:

    <body>
        <form action="myjsp.jsp" method="post">
         姓名:<input type="text" name="name"><br>
         电话:<input type="text" name="tel"><br>
         <input type="submit" value="提交">
         </form>
    </body>

    表单界面效果:

    接收界面代码:

     <body>
    <%
    String name = request.getParameter("name");
        String tel = request.getParameter("tel");
         %>
         <font facr="楷体" size=5>
         获取到的信息是:<br>
         姓名:<%=name %>
         电话:<%=tel %>
         </font>
    </body>

    接收界面效果:

    中文乱码解决

    如上我们可以看出,在我们传递了中文“张三”之后,在接收页面出现了乱码问题,解决办法如下:

    1、在接收界面的代码中,在获取参数值之前增加如下代码:

    request.setCharacterEncoding("utf-8");

    2、在提交表单的action后的method属性需设置为“post”。

    现在再来看一下:

     <body>
        <%
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
         %>
         <font facr="楷体" size=5>
         获取到的信息是:<br>
         姓名:<%=name %>
         电话:<%=tel %>
         </font>
      </body>

    效果如下:

    3、在传递过来的中文参数中存在乱码问题,原因是中文参数采用了页面原有的“ISO-8859-1”编码,因此我们可能需要将传递过来的参数的编码格式修改为“UTF-8”格式,格式转换的代码如下:

    String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

     

    三、网址或超链接传参

    利用网址或超链接传参的格式如下:

    <a href=”超链接或网址?参数名1=参数值1&参数名2=参数值2....”>点击跳转</a>

    传值界面代码: 

     <body>
       <a href="myjsp.jsp?name=zhangsan&tel=123456">点击传值</a>
     </body>

    传值界面效果如下:

    接收界面代码:

     <body>
    <%
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
         %>
         <font facr="楷体" size=5>
         获取到的信息是:<br>
         姓名:<%=name %>
         电话:<%=tel %>
         </font>
      </body>

    接收界面效果:

    中文错误解决

    但是当我们将传递的name值改为中文“张三”后,

    <body>
       <a href="myjsp.jsp?name=张三&tel=123456">点击传值</a>
      </body>

    点击传值出现如下界面:

    原因是因为在超链接或网址传参中,参数属于网址的一部分,同时这一部分是属于URL编码的,不支持中文的utf-8,因此在传递中文时会显示网址错误,解决办法是将我们要传递的中文转成URL编码即可:

    java.net.URLEncoder.encode("中文","utf-8")将中文转换成URL编码

    提交界面代码如下:

    <body>
       <a href="myjsp.jsp?name=<%=java.net.URLEncoder.encode("张三","utf-8") %>&tel=123456">点击传值</a>
      </body>

    接收界面代码不变:

    效果如下:

     

    四、JSP子动作传参

    使用JSP的forward或include动作,利用传参数子动作实现参数的传递的方式,较其他两种方式有所不同,在该方式中用户可以根据需要在request对象中添加属性,然后在另一个JSP程序中获取到添加的数据,

    具体的使用方法如下:

    在传值页面使用request对象的setAttribute(“name”,obj)方法,可以把数据设定在request范围内,设置数据的方法格式为:

    void request.setAttribute(“key”,object);

    其中key为键,string类型,是要保存的数值的属性名。Object是要保存的参数值,属于object类型,

    使用上面的方法在传值页面进行请求转发之后,在接收页面使用getAttribute(“name”)方法就可以获取到name属性下的值,获取数据的方法格式如下:

    Object request.getAttribute(string name);

    其中的参数name表示键名,与setAttribute(“name”,obj)方法中的name相对应,获取的参数类型由obj的类型决定。

    参数传递界面代码:
     

     <body>
      <%
      request.setAttribute("name", "李四");
      request.setAttribute("age", 18);
       %>
       <jsp:forward page="myjsp.jsp"></jsp:forward>
      </body>

    在使用该方式传参时,页面会自动跳转到指定页面。

    获取参数页面代码:

    <body>
        <%
        String name = (String)request.getAttribute("name");
        int age = (int)request.getAttribute("age");
         %>
         <font facr="楷体" size=5>
         获取到的信息是:<br>
         姓名:<%=name %>
         年龄:<%=age %>
         </font>
     </body>

    效果如下:

    中文乱码解决

    要在页面的最前端将整个页面的编码设置为“UTF-8”的编码格式,

    好了,关于JSP页面常用的三种传参方式以及中文乱码的解决方案,就和大家分享到这里,小伙伴们在实际操作过程中遇到新的问题也可以一起讨论学习。之后也会在这里继续更新其他可能出现的问题的解决方案。

    觉得不错记得点赞关注哟!

    大灰狼陪你一起进步!

    展开全文
  • 在用kettle做多表级联操作时数据出现了中文乱码问题问题如下图: 百度查了下至少有三种解决方案。编码格式和所连接的数据库编码格式相同,一般都为utf8,有些是gbk等。我的是utf8,所以就以此为例。 第一种:...
  • kettle同步数据中文乱码问题解决

    万次阅读 2019-03-04 14:33:01
    最近在使用kettle进行数据同步的时候,发现...试了下网上的解决方案,最终解决了这个问题。步骤如下: 1:kettle中配置源数据库、目标数据库编码 2:编辑“表输入”,去掉勾选“允许建议转换” 至此,问题解决。 ...
  • Java Web中文乱码问题解决

    千次阅读 2021-02-28 11:15:02
    一、为什么会出现中文乱码问题:java内核和class文件是基于unicode码的,这使Java程序具有良好的跨平台性,但也导致在Java和JSP文件在编译时以及Java程序与其他媒介交互时等情况下产生中文乱码成为可能。编码方式的...
  • Linux 服务器乱码问题解决

    千次阅读 2018-08-27 22:22:39
    解决问题思路: 出现乱码肯定是因为编码被更改。修改编码便可 解决步骤: 1、输入“locale” 命令直接查询当前编码 2、设置当前编码为默认编码。及输入“export LC_ALL=” ,回车便可;再次查询乱码是否...
  • jupyter notebook 中文乱码问题解决

    千次阅读 2018-12-03 10:28:29
    安装SimHei.ttf字体 在执行代码前加上如下代码: import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False
  • 页面乱码问题解决(汇总)

    千次阅读 2020-04-16 19:32:38
    页面乱码问题解决 目录 1.前端页面代码解决乱码问题 2. 后端端页面代码解决乱码问题 3. idea编译文件乱码问题 1.前端页面代码解决乱码问题 (a)页面是jsp,对于这个,需要在jsp头部加上page的编码设置 ...
  • javaweb项目乱码问题解决

    千次阅读 多人点赞 2021-12-09 00:46:05
    刚刚自己在测试登陆注册的时候发现的问题,就是数据库乱码问题,一开始以为是1数据库自己的编码问题后来发现并不是这样: 出现上面这个图的情况,首先说一下注册:在注册的时候要是注册用户输入汉字在数据库中...
  • Charles 乱码问题解决

    万次阅读 多人点赞 2020-05-09 15:09:36
    Charles 乱码问题解决 乱码显示 解决方法 修改Charles.ini 文件(可选); vmarg.5=-Dfile.encoding=UTF-8 vmarg.6=-Dfile.encoding=UTF-8 添加SSL代理(必须); 添加访问设置(必须); 注意:到这里...
  • 下面要介绍的就是Linux中,各类中文乱码解决方法。 示例 图中名为一个.sql文件的一段内容,是一个数据库文件。其在windows中打开显示正常,在Linux中,中文部分显示为乱码。 注意:这个与mysql乱码...
  • ftp客户端中文乱码问题解决

    千次阅读 2021-02-20 09:49:15
    解决方案 String charset = "gbk"; if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) { // 开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码,否则就使用本地编码GBK charset...
  • IntelliJ IDEA乱码问题解决方法

    千次阅读 2019-05-14 23:59:12
    1、设置文件编码 2、设置控制台编码 3、设置Tomcat Server编码 4、修改配置文件编码内容 1、设置文件编码 第1步:打开IDEA,依次点击File、Settings...打开Setting窗口; 第2步:在Settings窗口中,依次...
  • ByteArrayOutputStream乱码问题解决

    万次阅读 2021-04-01 17:14:04
    ByteArrayOutputStream读取文件中文时乱码问题解决 当我们获取文件,通过输入流读取数据,并返回字符串回去 public String readFiles(String fileName){ FileInputStream inputStream = null; ...
  • TongWeb下乱码问题解决思路

    千次阅读 2020-11-06 23:18:37
    解决乱码问题主要看以下几项配置,重点要了解这些编码设置所起的作用: 注:乱码问题看TongWeb的server.log日志基本没用,重点是看应用采用的编码以及操作系统、TongWeb的编码设置。 1. Linux下先通过local -a查看...
  • xml的中文乱码问题解决

    万次阅读 2018-07-28 21:32:50
    xml的中文乱码问题解决:   所以,保存时候的编码和设置打开时候的编码一致,就不会出现乱码
  • doPost 乱码问题解决

    万次阅读 2021-01-20 11:26:49
    doPost 乱码问题解决 //解决中文乱码 response.setContentType("text/html;charset=utf-8"); //请求解决乱码 request.setCharacterEncoding("utf-8"); //响应解决乱码 response.setCharacterEncoding("utf-8"); ...
  • Servlet中文乱码问题解决方案解析

    千次阅读 2021-02-27 13:47:29
    二、乱码的类型以及解决办法1、 response乱码一、出现乱码的原因由于浏览器默认使用UTF-8码表进行编码,而servlet使用ISO-8859-1码表进行编码,传输和接收方编码不一致导致乱码的产生。二、乱码的类型以及解决办法1...
  • IDEA控制台输出中文乱码问题解决

    千次阅读 多人点赞 2022-04-15 16:34:40
    还好最后自己不断地找原因终于找到了,不知道是IDEA版本问题还是自己更换了JDK地版本,将编码设置为utf-8在控制台输出的中文是乱码,将File Encodings统一设置为GBK即可! 收获:遇到IDEA控制台中文乱码问题,先...
  • java在cmd中乱码问题解决

    万次阅读 2021-05-01 14:35:25
    安装完毕后,发现输入命令会有乱码,可能有电脑编码问题有关,之前flask运行不起来,更改了电脑的编码 解决方法: 设置一个系统环境变量 JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 退出cmd,重新进入 问题解决 ...
  • Tomcat控制台中文乱码问题解决

    千次阅读 2021-06-20 13:51:53
    将tomcat控制台日志输出编码格式更改为GBK,修改tomcat根目录下conf/logging.properties文件中的ConsoleHandler.encoding=utf-8,这种方式能解决cmd控制台中文乱码,但不建议使用。因为更改了tomcat默认编码,如果...
  • 将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
  • C++,中文乱码问题解决办法

    千次阅读 2021-08-09 12:18:00
    中文乱码问题,很多时候是在其他的环境或者是记事本写的代码产生的。文件格式和正在使用的的环境文件格式不一致,就无法通过编译,产生一系列诡异的问题解决办法: 1.改变文件格式,使代码和环境的文件格式一致...
  • 四步解决matlab代码中文注释乱码问题
  • Matlab 乱码问题解决方法

    万次阅读 多人点赞 2020-09-25 11:26:51
    以下是我自己总结的两种解决乱码问题的方法,大家可以选择自己需要的方法解决问题,也可以一个方法一个方法的试一下。我使用matlab的版本为2019a\2019b\2020a,采用第二种方法解决了问题,默认编码格式为GBK。 1、...
  • 常见中文乱码问题解决方式

    千次阅读 2017-10-19 09:48:48
    当服务器向浏览器发送响应页面时,有时候因为码表的查询不一致,会在浏览器出现乱码问题。比如说服务器中我使用的是UTF-8,而浏览器默认是查询本地码表,...解决字节流或者字符流的乱码问题,可以通过HTTP响应头,或
  • VScode中文注释乱码问题解决

    千次阅读 多人点赞 2021-08-10 13:44:28
    VScode默认是用utf-8打开工程代码,C语言里的中文注释如果是Source insight之前gbk编码的注释可能会显示乱码,如何能让代码打开gbk编码的文件也不乱码,设置VScode如下: 方法一: 依次打开:文件–首选项–设置 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,189,634
精华内容 475,853
关键字:

编码问题如何解决