java获取中文不正确_为什么Java BufferedReader()不正确地读取阿拉伯语和汉字?

我正在尝试阅读一个包含英文和每行上的阿拉伯字符和另一个包含英文和英文的文件.每行汉字.但阿拉伯文和中文的人物无法正确显示 – 它们只是出现问号.任何想法如何解决这个问题?

以下是我用于阅读的代码:

try {

String sCurrentLine;

BufferedReader br = new BufferedReader(new FileReader(directionOfTargetFile));

int counter = 0;

while ((sCurrentLine = br.readLine()) != null) {

String lineFixedHolder = converter.fixParsedParagraph(sCurrentLine);

System.out.println("The line number "+ counter

+ " contain : " + sCurrentLine);

counter++;

}

}

版本01

阅读该行并获得阿拉伯语和中文单词后,我将使用一个函数来翻译它们,方法是在ArrayList(其中包含所有预期的单词)(使用indexOf(); method)中搜索给定的阿拉伯文本.然后,当找到该单词的索引时,它用于调用另一个Arraylist中具有相同索引的英文单词.但是,该搜索总是返回false,因为在搜索问号而不是阿拉伯语和汉字时失败.所以我的System.out.println打印显示我的空值,一个为每个失败的翻译.

*我正在使用Netbeans 6.8 Mac版本的IDE

版本02

以下是搜索翻译的代码:

int testColor = dbColorArb.indexOf(wordToTranslate);

int testBrand = -1;

if ( testColor != -1 ) {

String result = (String)dbColorEng.get(testColor);

return result;

} else {

testBrand = dbBrandArb.indexOf(wordToTranslate);

}

//System.out.println ("The testBrand is : " + testBrand);

if ( testBrand != -1 ) {

String result = (String)dbBrandEng.get(testBrand);

return result;

} else {

//System.out.println ("The first null");

return null;

}

我实际上正在搜索2个可能包含要翻译的单词的Arraylists.如果无法在两个ArrayLists中找到它们,则返回null.

版本03

当我调试我发现读取的行存储在我的String变量中,如下所示:

"3;0000000000;0000001001;1996-06-22;;2010-01-27;����;;01989;������;"

版本03

我正在阅读的文件已经被另一个程序修改了(我在VB旁边没有任何知道),该程序使阿拉伯字母出现不正确.当我在记事本上检查文件的编码时,表明它是ANSI.但是当我将其转换成UTF8(用其他英文替换阿拉伯语的信件)然后将其转换回ANSI时,阿拉伯语成为问号!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值