`
iceman1952
  • 浏览: 8349 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

试尽了各种编码,但字符串始终乱码,怀疑此处JDK中本身就乱码了,大家一起来讨论下,还不信就解决不了了

阅读更多
请管理员不要把这个帖子转到提问区,我主要是想让大家讨论下,谢谢

列出我的笔记本上可用的网络接口,但是,无论如何就是乱码,
我的笔记本是 联想Y430;OS: windows xp pro sp3;JDK: 1.4.2_10
代码非常简单,如下:
package examples.a06;

import java.net.NetworkInterface;
import java.util.Enumeration;

public class InterfaceLister {
    public static void main(String[] args) throws Exception {
        Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface ni = (NetworkInterface) interfaces.nextElement();
            System.out.println(ni);
        }
    }
}

输出是:
name:lo (MS TCP Loopback interface) index: 1 addresses:
/127.0.0.1;

name:eth0 (W-ibeda virtual adapter - ????ü??????ò?????) index: 2 addresses:

name:eth1 (Broadcom NetLink (TM) Fast Ethernet - ????ü??????ò?????) index: 65540 addresses:
/192.168.0.100;

name:eth2 (Intel(R) Wireless WiFi Link 5100 - ????ü??????ò?????) index: 458757 addresses:

name:ppp0 (WAN (PPP/SLIP) Interface) index: 786438 addresses:
/117.88.171.252;

我甚至把程序改成如下,但还是不能得到正确的结果:
package examples.a06;

import java.net.NetworkInterface;
import java.util.Enumeration;

public class InterfaceLister {
    public static final String[] ENCODEING = { "iso-8859-1", "gb2312",
            "gbk", "big5", "gb18030", "utf-8", "utf-16"};

    public static void main(String[] args) throws Exception {
        Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface ni = (NetworkInterface) interfaces.nextElement();
            String strDisplay = ni.toString();
            for (int i = 0; i < ENCODEING.length; i++) {
                byte[] bArray = strDisplay.getBytes(ENCODEING[i]);
                for (int k = 0; k < ENCODEING.length; k++) {
                    String newStr = new String(bArray, ENCODEING[k]);
                    System.out.println(ENCODEING[i] + "-->" + ENCODEING[k]);
                    System.out.println(newStr);
                    System.out
                            .println("***************************************");
                }
            }

        }
    }
}


我怀疑这个JDK的一个bug,也就是说,NetworkInterface 中的 displayName 在JDK内部就是乱码的,否则不会出现这种情况的

另外:在CSDN上挂了好几天,也没人能解决这个问题,所以,发到这里和大家一起讨论下,我还就不信了这个问题不能解决了
分享到:
评论
11 楼 whaosoft 2009-09-10  
是不是配置的事,没遇到过
10 楼 hanjiangit 2009-09-10  
我也出现这个问题了 jdk1.5 机器配置台式机 请高手关注
9 楼 dangjun625 2009-09-10  
基本上都用jdk1.5 也有很多人用jdk1.6了 jdk1.4不稳定
8 楼 ThinkingInAll 2009-09-10  
我也碰到过
比如文件是utf-8的,在windows下使用某个stream并且没有地方设置编码的话,可能就会出现这个问题
7 楼 joknm 2009-09-10  
检查一下你目前编辑环境使用的编码。
6 楼 ray_linn 2009-09-10  
检查一下你的控制台(dos窗口,属性)codepage
5 楼 iceman1952 2009-09-10  
xieboxin 写道
會不會是系統的問題?在我這裡也沒有亂碼……

应该不是系统的问题,其他人也有碰到此问题的。

在CSDN上也讨论过这个问题,链接:
http://topic.csdn.net/u/20090907/15/6cfd3b1b-2d15-4633-b426-0a1fcfd02dc6.html?08481355708463789
4 楼 iceman1952 2009-09-10  
yanwt 写道
你运行环境是什么?用的什么编译器?


OS:Windows Xp pro   sp3

JDK: 1.4.2_10
3 楼 xieboxin 2009-09-10  
會不會是系統的問題?在我這裡也沒有亂碼……
2 楼 mislay 2009-09-10  
name:net0 (WAN Miniport (SSTP)) index: 2 addresses:

name:net1 (WAN Miniport (IKEv2)) index: 3 addresses:

name:net2 (WAN Miniport (L2TP)) index: 4 addresses:

name:net3 (WAN Miniport (PPTP)) index: 5 addresses:

name:ppp0 (WAN Miniport (PPPOE)) index: 6 addresses:

name:eth0 (WAN Miniport (IPv6)) index: 7 addresses:

name:eth1 (WAN Miniport (Network Monitor)) index: 8 addresses:

name:eth2 (WAN Miniport (IP)) index: 9 addresses:

name:ppp1 (RAS Async Adapter) index: 10 addresses:

你看,好似你乱码都是括号里面的那部分协议
我怀疑是你装JDK时的系统编码和现在系统的编码不一致了.

我以前也出现过类似的问题,java里面输出中文但是在console里面不支持。
1 楼 night_stalker 2009-09-09  
我的机器上没乱码(不过不是联想……而且没非 ascii 字符)

或许是你的控制台编码有问题。试着打印到文件看看。

(程序不用改,
java InterfaceLister > res.txt
然后 tellenc res.txt)

相关推荐

    java中文乱码字符集解决大全.pdf

    如果任一环节出现编码不匹配,就会导致乱码。 3. 解决Java中文问题的方法 - **设置源文件编码**:使用支持设定编码的编辑器(如IDEA, Eclipse)并确保编码设置与源文件实际编码一致。 - **编译时指定编码**:使用`...

    修改了中文乱码问题的ZXing包及例子

    ZXing,全称为“Zebra Crossing”,是一款由Google开发并维护的开源项目,主要用于生成和解码各种类型的条形码和二维码(QR Code)。这个项目提供了多种编程语言的API,包括Java,使得开发者能够轻松地在自己的应用...

    java处理中文乱码

    这个方法涉及到将字符串从一种编码格式转换为另一种编码格式。在给出的示例中,`util.Encoding` 类的 `isToGB` 方法用于将ISO_8859_1编码的字符串转换为GBK编码。ISO_8859_1是一种西欧字符集,不支持中文字符,而GBK...

    JSP中文乱码问题最优解决方法

    在数据库连接字符串中指定字符集为`utf8`,确保数据库操作中涉及到的中文数据不会出现乱码。 4. **处理URL中的中文参数**: ```java String keywords = java.net.URLEncoder.encode(keywords, "utf-8"); ``` ...

    Java实现文件下载并解决中文文件名乱码

    - **Firefox处理**:Firefox支持UTF-8编码,但当文件名作为HTTP响应的一部分时,需要先将UTF-8编码的字符串转换为ISO-8859-1编码再发送给浏览器。 ```java filename = new String(filename.getBytes("UTF-8"), ...

    J2me访问c# Web Services解决了中文乱码

    示例代码中,我们看到一个名为`Hello`的Web方法,它接收一个字符串参数并返回包含中文的字符串。 - 配置Web服务的`web.config`文件,将请求和响应编码设置为与J2ME相匹配的编码,通常是GBK或GB2312,因为J2ME的...

    页面乱码解决4种方案

    这是由于数据库连接字符串中的字符集编码未被正确设置导致的。 **解决方案**:为了避免这种问题,在数据库连接字符串中明确指定使用UTF-8编码。例如: ```java String url = "jdbc:mysql://localhost:3306/test?...

    Jsp乱码问题解决

    在数据库连接字符串中添加特定的参数来指定字符集,例如使用GBK编码: ```java String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=GBK"; ``` 这样设置之后,可以确保数据库连接...

    JAVA中文乱码内幕.rar

    Java编程语言在处理中文字符时,可能会遇到乱码问题,这主要是由于编码格式不一致或者编码设置不当导致的。在深入探讨这个问题之前,我们需要先理解什么是编码,以及它如何影响到Java程序处理中文字符。 编码是将...

    java字符编码错误整理大全

    当读取.properties文件时,可能会出现乱码问题,这是因为文件本身的编码格式与程序解析时所用的编码不一致。例如,一个使用ISO-8859-1编码的.properties文件,在使用GBK编码进行解析时会出现乱码。解决方法: ```...

    java中文乱码问题详解.pdf

    - 使用JDK的javac编译器编译.java文件,Java编译器能够识别Unicode注释和字符串,但源文件的编码是GBK。 - 编译过程中,Java编译器会将GBK编码的源文件转换为内部的Unicode格式,生成.class字节码文件。 - 运行时...

    Java编程乱码问题

    Java编程中的乱码问题主要源于计算机历史上的编码标准演变,以及Java作为一种跨平台语言与不同系统编码不兼容的情况。在早期,计算机系统主要使用单字节编码,如ASCII,来处理英文字符。随着多语言需求的增长,...

    JSP各种乱码的处理 全

    在JDBC连接字符串中加入`useUnicode=true&characterEncoding=GBK`,确保数据库连接使用正确的字符集编码。 ```java String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK"; ...

    java应用中的汉字编码问题

    6. **字符串拼接与比较**:Java中的`String`类是基于Unicode的,但在进行字符串拼接或比较时,如果涉及到其他编码的字符串,需先进行正确的编码转换。 7. **国际化与本地化**:Java的`java.text`包提供了`Format`和...

    基于pushlet_chat技术的群聊实现 解决了中文乱码问题

    - 在代码中处理字符串编码转换的示例。 6. **测试工程** 压缩包内的测试工程包含了实际运行的代码和配置,可以帮助开发者快速理解Pushlet_Chat群聊系统的结构和工作原理。通过运行这个工程,可以验证中文字符的...

    如何解决JSP页面显示乱码问题

    1. **修改数据库连接字符串**:在数据库连接URL中增加`useUnicode=true&characterEncoding=GBK`参数,以确保使用统一的编码格式。 ```java String url = "jdbc:mysql://localhost:3306/yourdb?useUnicode=true&...

    JSP中文乱码问题

    - 在建立数据库连接时,确保连接字符串中包含了正确的字符集信息,如: ```java String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8"; ``` **5. 针对不同服务器平台的...

    JAVA学习第一天:JDK安装,第一天的遇到的重点

    JDK的正确安装对于Java初学者来说至关重要,而理解Print与println的区别、Null与空字符串的区别则是编程过程中的基础知识点。此外,统一编码格式也是避免乱码问题的关键。通过本篇文章的学习,相信你已经对Java学习...

    NetBeans中JSP乱码解决

    此外,对于特定类型的数据库字段(如`VARCHAR`或`TEXT`类型),还需要确保它们的编码格式与连接字符串中指定的编码一致,以避免乱码问题。 综上所述,解决JSP中的乱码问题需要从多个方面着手,包括页面编码、表单...

    ZipInputStream解压有中文名报错问题解决

    这个问题通常表现为乱码或者无法正确解压,因为默认情况下,`ZipInputStream`可能不支持非ASCII字符集,尤其是中文字符,这些字符在编码和解码过程中可能会出现错误。 要解决这个bug,我们需要理解几个关键的概念:...

Global site tag (gtag.js) - Google Analytics