Java:像Java中的ord PHP一样的方法

时间:2016-05-15 08:36:52

标签: java php

我想编辑一个使用ord方法的php代码,php的代码如下:

map

我尝试在java中编写代码:

$fh=fopen("../ip.data","r");
fseek($fh,327680);
$country_id=ord(fread($fh,1));  //return 137

但两者并不相等。 我知道PHP中的FileReader ip=new FileReader("ip.data"); int i = 0; int str; while((str=ip.read()) != -1){ if(i==327681){ System.out.println(str); //return 0 break; } i++; } ,Java中的ord('a')==97。 ip.data下载here

2 个答案:

答案 0 :(得分:1)

FileReader假定系统的输入文件的默认字符集,可能是utf-8,例如*在这种情况下,最多四个字节将被读取到&# 34;形成"您从FileReader.read()获得的单个字符 所以也许(只是猜测在这一点上),问题就在于此。你的PHP代码不假设任何编码,它只读取一个(8位)字节,它在java中的等价物就是这样。

fis = new  FileInputStream("ip.data");
country_id = fis.read(); // FileInputStream.read() is reading a byte, not a character

*)要测试该假设,请尝试

FileReader fr = new FileReader("ip.data")
System.out.println( fr.getEncoding() );

它打印什么?

答案 1 :(得分:-1)

试试这个:

String str = "t";
byte b = str.getBytes()[0];
int ascii = (int) b;

也许你必须使用char。