精华内容
下载资源
问答
  • 导出乱码 通过user-agent判断是window还是linux等 windows就是gbk其他utf-8 public static boolean osType(){ HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String agent=...

    导出乱码

    通过user-agent判断是window还是linux等 windows就是gbk其他utf-8

    	public static boolean osType(){
    		HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
    		String agent=request.getHeader("User-Agent");
    		StringTokenizer st = new StringTokenizer(agent,";");
    		st.nextToken();
    		String userbrowser = st.nextToken().toLowerCase();
    		if (userbrowser.contains("win")) {
    			return true;
    		}
    		return false;
    	}
    

    导入乱码 解决通过读取文件编码格式

    package com.lsblj.utils;
    
    import lombok.Cleanup;
    import lombok.NonNull;
    import lombok.extern.slf4j.Slf4j;
    
    import java.io.*;
    import java.util.BitSet;
     
    /**
     * 编码工具类,主要用于识别UTF8、UTF8 BOM、GBK
     * Created by dongp on 2018/1/9.
     */
    @Slf4j
    public class EncodeUtils {
        private static final int BYTE_SIZE = 8;
        public static final String CODE_UTF8 = "UTF-8";
        public static final String CODE_UTF8_BOM = "UTF-8_BOM";
        public static final String CODE_GBK = "GBK";
     
        /**
         * 通过文件全名称获取编码集名称
         *
         * @param fullFileName
         * @param ignoreBom
         * @return
         * @throws Exception
         */
        public static String getEncode(String fullFileName, boolean ignoreBom) throws Exception {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fullFileName));
            return getEncode(bis, ignoreBom);
        }
     
        /**
         * 通过文件缓存流获取编码集名称,文件流必须为未曾
         *
         * @param bis
         * @return
         * @throws Exception
         */
        public static String getEncode(@NonNull BufferedInputStream bis, boolean ignoreBom) throws Exception {
            //初始标记,isUTF-8中需要reset()
            bis.mark(0);
     
            String encodeType = "";
            byte[] head = new byte[3];
            bis.read(head);
            if (head[0] == -1 && head[1] == -2) {
                encodeType = "UTF-16";
            } else if (head[0] == -2 && head[1] == -1) {
                encodeType = "Unicode";
            } else if (head[0] == -17 && head[1] == -69 && head[2] == -65) { //带BOM
                if (ignoreBom) {
                    encodeType = CODE_UTF8;
                } else {
                    encodeType = CODE_UTF8_BOM;
                }
            } else if ("Unicode".equals(encodeType)) {
                encodeType = "UTF-16";
            } else if (isUTF8(bis)) {
                encodeType = CODE_UTF8;
            } else {
                encodeType = CODE_GBK;
            }
            return encodeType;
        }
     
        /**
         * 是否是无BOM的UTF8格式,不判断常规场景,只区分无BOM UTF8和GBK
         *
         * @param bis
         * @return
         */
        private static boolean isUTF8(@NonNull BufferedInputStream bis) throws Exception {
            bis.reset();
            //读取第一个字节
            int code = bis.read();
            do {
                BitSet bitSet = convert2BitSet(code);
                //判断是否为单字节
                if (bitSet.get(0)) {//多字节时,再读取N个字节
                    if (!checkMultiByte(bis, bitSet)) {//未检测通过,直接返回
                        return false;
                    }
                } else {
                    //单字节时什么都不用做,再次读取字节
                }
                code = bis.read();
            } while (code != -1);
            return true;
        }
     
        /**
         * 检测多字节,判断是否为utf8,已经读取了一个字节
         *
         * @param bis
         * @param bitSet
         * @return
         */
        private static boolean checkMultiByte(@NonNull BufferedInputStream bis, @NonNull BitSet bitSet) throws Exception {
            int count = getCountOfSequential(bitSet);
            byte[] bytes = new byte[count - 1];//已经读取了一个字节,不能再读取
            bis.read(bytes);
            for (byte b : bytes) {
                if (!checkUtf8Byte(b)) {
                    return false;
                }
            }
            return true;
        }
     
        /**
         * 检测单字节,判断是否为utf8
         *
         * @param b
         * @return
         */
        private static boolean checkUtf8Byte(byte b) throws Exception {
            BitSet bitSet = convert2BitSet(b);
            return bitSet.get(0) && !bitSet.get(1);
        }
     
        /**
         * 检测bitSet中从开始有多少个连续的1
         *
         * @param bitSet
         * @return
         */
        private static int getCountOfSequential(@NonNull BitSet bitSet) {
            int count = 0;
            for (int i = 0; i < BYTE_SIZE; i++) {
                if (bitSet.get(i)) {
                    count++;
                } else {
                    break;
                }
            }
            return count;
        }
     
     
        /**
         * 将整形转为BitSet
         *
         * @param code
         * @return
         */
        private static BitSet convert2BitSet(int code) {
            BitSet bitSet = new BitSet(BYTE_SIZE);
     
            for (int i = 0; i < BYTE_SIZE; i++) {
                int tmp3 = code >> (BYTE_SIZE - i - 1);
                int tmp2 = 0x1 & tmp3;
                if (tmp2 == 1) {
                    bitSet.set(i);
                }
            }
            return bitSet;
        }
     
        /**
         * 将一指定编码的文件转换为另一编码的文件
         *
         * @param oldFullFileName
         * @param oldCharsetName
         * @param newFullFileName
         * @param newCharsetName
         */
        public static void convert(String oldFullFileName, String oldCharsetName, String newFullFileName, String newCharsetName) throws Exception {
           
     
            StringBuffer content = new StringBuffer();
     
            @Cleanup
            BufferedReader bin = new BufferedReader(new InputStreamReader(new FileInputStream(oldFullFileName), oldCharsetName));
            String line;
            while ((line = bin.readLine()) != null) {
                content.append(line);
                content.append(System.getProperty("line.separator"));
            }
            newFullFileName = newFullFileName.replace("\\", "/");
            File dir = new File(newFullFileName.substring(0, newFullFileName.lastIndexOf("/")));
            if (!dir.exists()) {
                dir.mkdirs();
            }
            @Cleanup
            Writer out = new OutputStreamWriter(new FileOutputStream(newFullFileName), newCharsetName);
            out.write(content.toString());
        }
     
    }
    
    String encodeType = EncodeUtils.getEncode(file.getAbsolutePath(), true);
    	        if ("UTF-8".equals(encodeType)){
    		        isr = new InputStreamReader(new FileInputStream(file),"UTF-8");
    	        }else{
    		        isr = new InputStreamReader(new FileInputStream(file),"GBK");
    	        }
    
    展开全文
  • java导入项目乱码

    2016-05-04 11:19:50
    右键项目的名字 -->Properties--> 左边选 Resource--> 右边选 Text file encoding  这一栏-->other--> 这里选原项目的字符编码(GBK,UTF-8等)
    右键项目的名字
    -->Properties-->
    左边选 Resource-->
    右边选 Text file encoding 
     这一栏-->other-->
    这里选原项目的字符编码(GBK,UTF-8等)

    展开全文
  • 注意:这里是以myeclipse为例 ...注意:这里设置完成后,打开项目src下随便一个文件,看看文件是否乱码,如果不乱码,说明你的编码设置正确,反之错误,错误的话,需要选择别的编码方法 1.2设置全局内容编码...

    注意:这里是以myeclipse为例

     1、页面乱码【目的就是统一编码】

        1.1设置项目编码【一般项目编码都是UTF-8】

    右键项目>>>>Properties>>>>>Resource>>>>设置编码,下图是操作步骤:

    注意:这里设置完成后,打开项目src下随便一个文件,看看文件是否乱码,如果不乱码,说明你的编码设置正确,反之错误,错误的话,需要选择别的编码方法

     

        1.2设置全局内容编码【一般项目编码都是UTF-8】

    Windows>>>>Preferences>>>>General>>>>Content Types>>>>Text【选择你想要设置的文件,一般只要设置三个就好】

    1.Java Source Files

    2.JSP

    3.Html

    操作见下图:

    注意:每次设置后,需要点击Update

     

        1.3设置Tomcat编码【一般项目编码都是UTF-8】

    说明:Tomcat默认的编码为ISO-8859-1

    所以需要设置为UTF-8

    操作如下图:

    注意:我这里是以Tomcat7为例,其他的Tomcat版本也是一样的路径,找到这个文件后,用记事本或者nodeapade++打开

     

     

    1.4上述设置后,可能还有某些文件乱码

    解决:

    这些文件用nodepade++打开,然后设置编码让其显示正常后,覆盖你项目中的文件,到此所有都可以解决。【除非你项目有问题】!!!

    操作如下图:

     

    设置编码完成,欢迎大家交流

     

     

    展开全文
  • 今天导入Java项目乱码了,找了很多网上的办法,只有一种对我有效,记录下来,怕下次遇到这种问题我就忘了 首先点击乱码的那个文件 右击属性 改成GBK即可,一个一个的来 应该可以一个文件夹的改,但是我这个不行 ...

    今天导入Java项目乱码了,找了很多网上的办法,只有一种对我有效,记录下来,怕下次遇到这种问题我就忘了
    首先点击乱码的那个文件
    在这里插入图片描述右击属性
    在这里插入图片描述改成GBK即可,一个一个的来
    应该可以一个文件夹的改,但是我这个不行

    展开全文
  • Eclipse导入java project出现乱码问题,大多都是因为编码不对。只需三步就可以解决这个问题: 对某工程更改编码: 鼠标移到工程名或文件名,右键->Properties->Resource->Text file enCoding ->更改编码(GBK、UTF-...
  • 关于导入Java项目乱码问题解决

    千次阅读 2015-01-21 19:50:35
    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同。 1 改变整个文件类型的...
  • java导入excel中文乱码问题

    千次阅读 2018-11-30 15:20:06
    查看源代码时发现JSP文件中写死的中文为乱码,则在JSP文件头部添加一行 &lt;%@ page contentType="text/html; charset=UTF-8" %&gt; 查看源代码时发现文字为中文,但是用Excel打开为乱码则在&...
  • 我写了一个小程序把txt中的文字读取并写入mysql,然而无论怎么样都有乱码,我试了很多方法都不行,结果最后解决居然是因为url的问题,崩溃了,求大神们看看 之前是这样 ``` public static final String url = ...
  • Eclipse导入项目java文件中文乱码

    万次阅读 多人点赞 2018-10-11 16:23:24
    我这次遇到的问题是重新导入之前的项目发现项目java文件中文乱码,我首先确认下java文件的编码是什么格式,选择乱码java文件右键选择properties,进入该文件的设置页面,选择resources属性,在页面下方可以看到...
  • idea解决导入进来的java文件乱码

    千次阅读 2019-08-29 21:48:24
    将原来的文件用记事本打开,选择另存为,下面编码方式选择utf-8编码就可以完美解决了!
  • 学习时,在 IntelliJ IDEA导入别人发过来的.java文件的时候,打开发现出现中文乱发这个问题。 遇到问题 导入.java文件时,会弹出下图提示栏,选择 Reload in 'GBK’ ...
  • 1.当通过eclipse配置修改不能解决问题时,因GBK文件导入UTF-8的配置环境中导致。 2.通过执行一下代码来解决问题。也可一份一份复制粘贴解决。 package .............; import java.io.BufferedReader; import ...
  • java 中的 BIO、NIO和AIO理解为是 Java 语言在操作系统层面对这三种 IO 模型的封装。程序员在使用这些 封装API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码,只需要使用Java的...
  • 导入Java包时,里面的注释乱码了,找到的解决方法如下: 转载于:https://www.cnblogs.com/cxyzzjh/p/4619619.html
  • String userAgent = request.getHeader("USER-AGENT");// 文件名,包含后缀 if (StringUtils.contains(userAgent, "Chrome") || StringUtils.contains(userAgent, "Firefox")) { // google,火狐浏览器 ...
  • Java导入csv文件以及解决中文乱码

    千次阅读 2017-07-24 15:33:00
    第一行通过MultipartFile得到java.util.Scanner对象的时候,要加上GBK这个参数,否则,当csv文件中存在中文时,可能会出现中文乱码的情况。 userDelimiter("\\A")直接这样写就行,具体为什么这样写目前还没有研究。...
  • 导入java项目时乱码

    2013-04-12 14:16:25
    右键项目的名字-->Properties-->左边选 Resource-->右边选 Text file encoding 这一栏-->other-->这里选原项目的字符编码 如果你不知道的话 就选gbk 或者 utf-8 试一下
  • windows->Preferences->general->Workspace->Text file encoding->Other框中的Text file ...windows->Preferences->general->Context Types->Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8
  • 1.项目右键 打开 >> Properties >> Resource >> Text file encoding >> Other 如图1: 图1 2.Apply >> ok!如图1: 转载于:https://www.cnblogs.com/yaojiankui/p/4024112.html...
  • 1.首先 打开 >> Eclipse或Myeclipse.(我用的是Myeclipse) 2.打开 >> Window >> Preferences 如图1: 图1 3.打开 >> Preferences >> General >>... Text...
  • 在eclipse工作区间导入项目出现中文乱码,右击项目,properties-->Resource-->Text file encoding 更改为utf-8后还是乱码。 可以在windows-->preferences-->WorkSpace--> Text file encoding 更改为GBK编码方式,...
  • 1. 首先,确认下导入Java 文件的编码是什么格式 方法:在乱码的项目上 --> 右键 --> 选择【Properties】,进入该文件的设置页面 --> 选择【Resources】属性; 注意看【Text file encoding】项,该项...
  • .(我使用的)在IDE(Eclipse),选择Window--->preferences---->General---->ContentTypes-------点开text (有个+符号)---找到Java Source File ----在Default encoding 设置合适编码格式(gbk 或者UTF-8) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 874
精华内容 349
关键字:

java导入乱码

java 订阅