我正在使用 java servlet。在我的数据库中,一些字符串包含字符 Å、Ä 和 Ö。当我检查这些字符串是否包含这些特殊字符时,它总是错误的。如何检查字符串是否包含这些特殊字符。我正在使用 Eclipse。提前致谢。
问问题
2723 次
3 回答
0
这些是扩展的 ASCII 字符。
byte[] data=new byte[1];
data[0]=(byte)197; 197 is for Å
String char1=new String(data,"ISO-8859-1");
您可以像上面一样创建字符串“char1”,然后与目标字符串进行比较。
获取查找代码:
for( int i=127;i < 256;i++)
{
byte[] char= new byte[1];
char[0]= (byte)i;
System.out.println("Data : "+char+","+
new String(char, "ISO-8859-1")+","+i); //'i' will give u code. 197 is for Å so on.
}
请参阅此表,Java SE 6 支持的字符集:来源:http ://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html
US-ASCII Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set
ISO-8859-1 ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1
UTF-8 Eight-bit UCS Transformation Format
UTF-16BE Sixteen-bit UCS Transformation Format, big-endian byte order
UTF-16LE Sixteen-bit UCS Transformation Format, little-endian byte order
UTF-16 Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark
于 2012-09-06T11:10:54.557 回答
0
输入流的编码必须正确。Java 字符串已经编码。看下面的例子,当读者使用时inputString
效果很好。但是在外部输入流的情况下,字节需要被编码到阅读器(因此java.lang.String
)。当您什么都不传递时,Java 使用依赖于运行时平台的默认字符集。当您知道字符集特定于应用程序时,您应该将其作为参数传递。要小心,因为有些字符集输入一个字节 ( ASCII
),有些输入一个或两个字节 ( UTF8
),有些输入两个字节 ( UTF16
)。
// String charset = "UTF-8";
// Reader inputReader = new InputStreamReader(new FileInputStream("xxxx"), charset);
String inputString = "Å, Ä or Ö";
StringReader stringReader = new StringReader(inputString);
Reader reader = stringReader;
int data = reader.read();
while (data != -1) {
char dataChar = (char) data;
int codeChar = (int) data;
System.out.println("char=" + dataChar + ", code=" + codeChar);
data = reader.read();
}
String toReplace = "Å";
String stringAfter = inputString.replace(toReplace, "B");
System.out.println(stringAfter);
// prints:
char=Å, code=197
char=,, code=44
char= , code=32
char=Ä, code=196
char= , code=32
char=o, code=111
char=r, code=114
char= , code=32
char=Ö, code=214
B, Ä or Ö
于 2012-09-06T11:29:51.993 回答
0
您可以使用string.contains(s)方法。参见示例;
String x = "aaa Å bbb";
if(x.contains("Å")){
System.out.println("OK");
}
于 2012-09-06T11:37:04.693 回答