java检测字符串编码

怎么 知道 java字符串 编码格式

这样的测试方法是不正确的。getBytes(charset)是解码,new String(byte[], charset)是编码。new String(str.getBytes(charset),charset)是解码再编码,无论charset是什么编码格式,返回的字符串内容原始str是一致,因此equals方法都是返回true,达不到测试字符串编码格式的目的。个人观点:正确的测试姿势应该是这样的:

String charset =”xxx”; //假定编码格式

String str = “中文”;

boolean flag = str.equals(new String(str.getBytes(),charset));

flag为true则表明str的编码格式是假定的编码格式。其中说明str.getBytes()该方法就是按其自身编码格式去解码。其自身编码格式跟你的操作系统编码格式或你使用的IDE设置的文件的Text file encoding有关。

技术问题:java中如何判断字符串内容是否是编码

如果是Java的String对象的话,则一定是Unicode的,这个没有为什么,Java就是这么定的。

我猜你的问题应该是如何判断一段字节流是什么编码类型,对吗?比如一个文件,或是网络上面取下来的一段Byte数组,你需要用一个合适的编码来解析成字符串。

这个让你失望了,没有一个文档化的,确定的方法来判断,只能用测试的方法,这个方法也只是猜测,不能百分百的确定,方法如下:

用常见的编码方式对字节流进行解码,比如Unicode,UTF8,

UTF8

without

BOM, UTF16,

ANSI等等。

对解析的结果进行判断,是不是一个合理的可打印字符,可打印字符最多的解码方式就是最可能的编码了。

如何判断可打印字符?流程如下:把解析好的字符串按照字符进行遍历,把每一个字符转化成Unicode编码,看看这些编码是不是Unicode的支持范围极客。

如果发现有种编码方式都是可打印字符,那么再使用本步骤:对字符串进行分词,分词这个在此不作赘述,你自己再研究一下。分词效果好的就是最可能的编码了。(不过通常到第三步就能搞定了,第四部绝大部分用不着)

java检测字符串编码

java判断字符串是否超出utf8编码

php判断是不是字符串的方法:可以利用php内置函数is_string()来判断。is_string()函数用于检测某个变量是否是字符串,如果指定变量为字符串则返回true,否则返回false。php为我们

告诉你java如何判断编码是否是utf8编码

String的getBytes()方法是得到一个系统默认的编码格式的字节数组。 getBytes(“utf-8”) 得到一个UTF-8格式的字节数组。 把String转换成bytes,各种编码

java 判断字符串什么编码类型

如果是Java的String对象的话,则一定是Unicode的,这个没有为什么,Java就是这么定的。

我猜你的问题应该是如何判断一段字节流是什么编码类型,对吗?比如一个文件,或是网络上面取下来的一段Byte数组,你需要用一个合适的编码来解析成字符串。

这个让你失望了,没有一个文档化的,确定的方法来判断,只能用测试的方法,这个方法也只是猜测,不能百分百的确定,方法如下:

用常见的编码方式对字节流进行解码,比如Unicode,UTF8,

UTF8

without

BOM,

UTF16,

ANSI等等。

对解析的结果进行判断,是不是一个合理的可打印字符,可打印字符最多的解码方式就是最可能的编码了。

如何判断可打印字符?流程如下:把解析好的字符串按照字符进行遍历,把每一个字符转化成Unicode编码,看看这些编码是不是Unicode的支持范围极客。

如果发现有种编码方式都是可打印字符,那么再使用本步骤:对字符串进行分词,分词这个在此不作赘述,你自己再研究一下。分词效果好的就是最可能的编码了。(不过通常到第三步就能搞定了,第四部绝大部分用不着)

java 中如何查看字符串的编码类型

可以通过以下方法来进行编码格式判断,输入一个字符串,之后返回字符串编码类型。

public static String getEncoding(String str) {

String encode = “GB2312”;

try {

if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GB2312

String s = encode;

return s; //是的话,返回“GB2312“,以下代码同理

}

} catch (Exception exception) {

}

encode = “ISO-8859-1”;

try {

if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是ISO-8859-1

String s1 = encode;

return s1;

}

} catch (Exception exception1) {

}

encode = “UTF-8”;

try {

if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8

String s2 = encode;

return s2;

}

} catch (Exception exception2) {

}

encode = “GBK”;

try {

if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GBK

String s3 = encode;

return s3;

}

} catch (Exception exception3) {

}

return “”; //如果都不是,说明输入的内容不属于常见的编码格式。

}

java 如何判断字符串编码格式

java可供判断某字符串是什么编码的一行代码

System.out.println(“中文”);

        System.out.println(“中文”.getBytes());

        System.out.println(“中文”.getBytes(“GB2312”));

        System.out.println(“中文”.getBytes(“ISO8859_1”));

        System.out.println(new String(“中文”.getBytes()));

        System.out.println(new String(“中文”.getBytes(), “GB2312”));

        System.out.println(new String(“中文”.getBytes(), “ISO8859_1”));

        System.out.println(new String(“中文”.getBytes(“GB2312”)));

        System.out.println(new String(“中文”.getBytes(“GB2312”), “GB2312”));

        System.out.println(new String(“中文”.getBytes(“GB2312”), “ISO8859_1”));

        System.out.println(new String(“中文”.getBytes(“ISO8859_1”)));

        System.out.println(new String(“中文”.getBytes(“ISO8859_1”), “GB2312”));

        System.out.println(new String(“中文”.getBytes(“ISO8859_1”), “ISO8859_1”));

        

        eg:判断当前字符串的编码格式。

//判断当前字符串的编码格式

if(destination.equals(new String(destination.getBytes(“iso8859-1”), “iso8859-1”)))

{

destination=new String(destination.getBytes(“iso8859-1″),”utf-8”);

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月28日 07:30:38
下一篇 2024年3月28日 07:37:49

相关推荐

  • 深入java虚拟机pdf,深入java虚拟机 中村成洋 pdf

    在linux环境下,java怎么实现从word格式转换为pdf格式 //设置当前使用的打印机,我的Adobe Distiller打印机名字为 Adobe PDF wordCom.setProperty( ActivePrinter , new Variant( Adobe PDF ));//设置printout的参数,将word文档打印为postscript…

    2024年5月23日
    4300
  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    4100
  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3400
  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4600
  • 自学java找工作,自学java找工作需要包装简历吗

    自学java学多久可以找到工作 1、自学Java至少需要一年以上的时间才能达到找工作的水平。报班培训四到六个月的时间就可以找到一份不错的工作。 2、自学Java至少需要一年以上的时间才能达到找工作的水平。 3、如果要想找到一份Java相关的工作,需要至少学习5-6个月时间才能就业。Java开发需要掌握一些基础的编程语言知识,比如掌握面向对象的编程思想、基本的…

    2024年5月23日
    4200
  • java左移右移,java 左移

    java位移问题 1、思路:直接用Integer类的bit运算操作。 2、移位操作:左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。 3、Java 位运算 Java 位运算[转]一,Java 位运算表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的…

    2024年5月23日
    4100
  • c语言用string定义字符串,c语言中用string类型来处理字符串类型

    C++怎样定义定义字符串 1、第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符\0,而字符数组不需要。 2、在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为 …

    2024年5月23日
    4200
  • java获取字符串指定字符,java获取字符串指定字符的位置

    java如何读取字符串中的某一段字符串 1、在Java中获取字符串中指定的值可以使用以下几种方式:点击学习大厂名师精品课使用substring()方法可以使用String类提供的substring(intbeginIndex,intendIndex)方法,从原始字符串中截取出指定范围的字符子串。 2、第一个参数是开始截取的字符位置。(从0开始)第二个参数是结…

    2024年5月23日
    4000
  • java技术规范,java规范性要求

    现在主流的JAVA技术是什么? java最流行开发技术程序员必看 1 、Git Git一直是世界上最受欢迎的Java工具之一,也是Java开发人员最杰出的工具之一。Git是一个开源工具,是-种出色的分布式版本控制解决方案。 (1).Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。(2).Java面向对象编…

    2024年5月23日
    3900
  • javasocket编程,Java socket编程中,禁用nagle算法的参数

    Java进行并发多连接socket编程 1、Java可利用ServerSocket类对外部客户端提供多个socket接口。基本的做法是先创建一个ServerSocket实例,并绑定一个指定的端口,然后在这个实例上调用accept()方法等待客户端的连接请求。 2、Socket socket=server.accept(0;Thread handleThrea…

    2024年5月23日
    4500

发表回复

登录后才能评论



关注微信