Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用爪哇语处理挪威和冰岛字母_Java_Maven_Unicode - Fatal编程技术网

Java 用爪哇语处理挪威和冰岛字母

Java 用爪哇语处理挪威和冰岛字母,java,maven,unicode,Java,Maven,Unicode,在爪哇, 我收到一个包含挪威字符和冰岛字符的文本输入 我得到一个流,然后将其解析为字符串,分配给一些变量,然后再次创建输出 当我输出时,挪威和冰岛的字符会被扭曲并得到一些?或¨等。打开时,输出文件也会获得相同的字符 我正在使用Maven制作web项目.war。冰岛语/挪威语文本编码需要哪些基本设置 我得到了一个设置区域设置的方法,但无法使用它生成输出。setDefault(新语言环境(“is_is”,“冰岛”)) 请建议。怎么做 实际字符:HÝS048 扭曲字符:HÃ?S048(当直接输出时)或

在爪哇, 我收到一个包含挪威字符和冰岛字符的文本输入

我得到一个流,然后将其解析为字符串,分配给一些变量,然后再次创建输出

当我输出时,挪威和冰岛的字符会被扭曲并得到一些?或¨等。打开时,输出文件也会获得相同的字符

我正在使用Maven制作web项目.war。冰岛语/挪威语文本编码需要哪些基本设置

我得到了一个设置区域设置的方法,但无法使用它生成输出。setDefault(新语言环境(“is_is”,“冰岛”))

请建议。怎么做

实际字符:HÝS048

扭曲字符:HÃ?S048(当直接输出时)或H?S048(当我从字符串中获取字节并使用UTF-8放入字符串对象时)

更新(11:13) 我用过

CharsetEncoder encoder=Charset.forName(“UTF-8”).newEncoder();
编码器.onMalformedInput(CodingErrorAction.REPORT);
编码器.onUnmappableCharacter(CodingErrorAction.REPORT);
BufferedWriter out=新的BufferedWriter(新的OutputStreamWriter(新的FileOutputStream(“d:\\try1.csv”),编码器));
写出(某人写的东西);
out.flush();
out.close()

输出:HÃï½S048

更新(12:41): 从HTTP源读取流时,我使用了以下方法:

`BufferedReader in = new BufferedReader(new InputStreamReader(apiURL.openStream(), "UTF-8"));`
它完美地显示了控制台上的输出。 我已经获取了CSV的值,并将其放在LogicsBean之后


现在我需要创建CSV文件,但当我从bean中获取值时,它会再次提供扭曲的文本。我正在使用StringBuilder附加bean的值并将其写入文件:(希望是最好的。寻找想法这个问题的解决方案是以UTF-8格式获取数据,以UTF-8格式打印数据,并以UTF-8格式创建文件

从URL读取数据,如下所示:

BufferedReader in = new BufferedReader(new InputStreamReader(apiURL.openStream(), "UTF-8"));
然后将其设置为beans或执行任何您想要的操作

System.out.println(new String(sb.toString().getBytes("UTF-8"),"UTF-8"));
然后,在再次创建文件时:

FileWriter writer = new FileWriter("d:\\try2.csv");
writer.append(new String(sb.toString().getBytes("UTF-8"),"UTF-8"));
writer.flush();
writer.close();

<>这是我的问题得到解决的原因。

太宽了。你必须考虑JSP的字符集,考虑使用Strug.GETBythOs(“IS”)等等。这些是java文件,不是JSP和处理,只是java文件。如何使用字符集?看看Stig.GETByg()方法。对于InputStream也类似-您使用的是哪一个?听起来您的程序认为输入流是用UTF-8编码的,而流的源认为您使用的是不同的编码,或者类似的东西。我从URL获取InputStream。我获取的输入流类似于for(nextLine=csv.readNext())和readNext()返回字符串[]。然后,对于(字符串标记:nextLine)和该字符串标记,当打印或放入文件时,所有字符都会失真。实际字符:HÝS048(冰岛语)和失真(HÃ?S048或H??S048)