使用java读取古吉拉特邦语言的文件,但得到的是&引用;

使用java读取古吉拉特邦语言的文件,但得到的是&引用;,java,file,unicode,Java,File,Unicode,我正在读一个使用java的unicode文件 这是我的档案: 它的编码是unicode。 但是,每当我试图用java中的UTF-8或UTF-16阅读这篇文章时,它都能正确地阅读英语单词,但不能阅读古吉拉特语中的其他单词。它给了"什么"??????只有我有我问过的同样的问题。但是没有人回答,所以改变了我的方法。我从MSSQL数据库中读取数据,该数据库有nvarchar列(古吉拉特语)并将其存储在一个文件中,现在我尝试使用java从该文件中读取数据。但仍然没有得到它 我尝试将文件的编码改为UTF-

我正在读一个使用java的unicode文件

这是我的档案:

它的编码是unicode。

但是,每当我试图用java中的UTF-8或UTF-16阅读这篇文章时,它都能正确地阅读英语单词,但不能阅读古吉拉特语中的其他单词。它给了"什么"??????只有我有我问过的同样的问题。但是没有人回答,所以改变了我的方法。我从MSSQL数据库中读取数据,该数据库有nvarchar列(古吉拉特语)并将其存储在一个文件中,现在我尝试使用java从该文件中读取数据。但仍然没有得到它

我尝试将文件的编码改为UTF-8和unicode大端,我尝试了所有的方法,但没有得到想要的结果

这是我的java代码:

File fileDir = new File("C:\\Users\\admin\\AppData\\Local\\Programs\\Python\\Python35\\data.txt");

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir),"UTF-16"));

String str;

while ((str = in.readLine()) != null) {
    System.out.println(str);
}

in.close();
我通过套接字连接将这些数据定向到我的android应用程序。我试图在文本视图上显示它,但它也给了我一个“?”符号。。 我还试着用
textview.setText(“તારુ નામ શુ છે ?")并正确显示

当我试图通过套接字连接从java发送硬编码字符串时(字符串与上面写的相同),它会引发以下错误:

java:23:错误:编码Cp1252的不可映射字符 ds.写入字节(“α​ñα​”╛α¬░α½? નα¬╛ᬫ α¬╢α½?α,,α½ç?)


您的问题是您使用的是System.out.println。它使用平台编码,因此不受支持

尝试使用PrintStream,它应该可以工作。您可以使用以下配置PrintStream:

PrintStream ps = new PrintStream(System.out, true, "UTF-8");

(我也认为UTF-8应该适合您)。

您如何检查它?可能是输出格式(控制台、日志)不支持非unicode字符。我正在使用cmd..@defaultlocaleWindows命令行可能需要配置以支持unicode输出。检查此问题:您确实需要隔离问题。Jon Skeet如何检查字符。现在您可能需要检查控制台和套接字连接。发送ha时会发生什么rdcoded字符串?我已经更新了问题。@defaultlocaleOk。我会尝试一下,但我的主要目标是在android应用程序的文本视图中打印这些数据。你能看看这里吗:这也可能是你使用的字体有问题。你的回答给了我另一个想法,我已经解决了我的问题。非常感谢。@Aditya K