java 阿拉伯文_为什么Java BuffelDead()不正确读取阿拉伯文和汉字?

我正在读一个文件,每行包含英文和阿拉伯字符,每行包含英文和中文字符。然而,阿拉伯语和汉语的字符没有正确显示-它们只是作为问号出现。我知道怎么解决这个问题吗?

这是我用来阅读的代码:

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();方法)。然后当单词的索引被找到时,它被用来调用在另一个数组列表中具有相同索引的英语单词。但是,这个搜索总是返回false,因为它在搜索问号而不是阿拉伯和中文字符时失败。所以我的system.out.println print显示了空值,每次翻译失败都显示一个空值。

*我使用的是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;

}

我实际上在搜索两个数组列表,其中可能包含要翻译的单词。如果在两个ArrayList中都找不到它们,则返回空值。

版本03

调试时,我发现正在读取的行存储在字符串变量中,如下所示:

"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、付费专栏及课程。

余额充值