Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中删除特殊字符的策略建议_Java_String_Special Characters - Fatal编程技术网

java中删除特殊字符的策略建议

java中删除特殊字符的策略建议,java,string,special-characters,Java,String,Special Characters,我创建了一个Java应用程序,它解析一个文本文件以提取加载到数据表中的字段。我们发现了一些异常处理,其中表不能接受特殊字符,特别是等 当我查看输入文件时,这些字符在输入文件中显示为空格,但Java对它们的解释不同。我怀疑这是一个不同的字符代码 我的问题是:为了过滤掉这些字符,是否有任何方法可以生成Java所看到的内容的列表?我正在考虑打印字符和字符代码,如果可能的话,打印字符集(ASCII、ANSI、UTF-8等)。这样,我就可以在结束文件中为字符替换一个空格,并解决我的问题 有没有一个更简单的

我创建了一个Java应用程序,它解析一个文本文件以提取加载到数据表中的字段。我们发现了一些异常处理,其中表不能接受特殊字符,特别是

当我查看输入文件时,这些字符在输入文件中显示为空格,但Java对它们的解释不同。我怀疑这是一个不同的字符代码

我的问题是:为了过滤掉这些字符,是否有任何方法可以生成Java所看到的内容的列表?我正在考虑打印字符和字符代码,如果可能的话,打印字符集(ASCII、ANSI、UTF-8等)。这样,我就可以在结束文件中为字符替换一个空格,并解决我的问题


有没有一个更简单的解决方案我没有看到

试着说,UTF8

public static byte[] stringToByteArray(String s)
    throws UnsupportedEncodingException {
    return s.getBytes("UTF-8");
}

或其他类似“iso-8859-1”的格式,并将bytearray转换为字符串,然后尝试打印?

听起来您正在交叉字符集,或者您的输入文件中包含某种控制字符序列。你应该把精力集中在这方面,并确保你使用的是正确的角色集。我能想到的在文件中滚动字符列表的唯一方法是数组并循环文件

如果你真的想把所有的东西都去掉,看看这个帖子


它解释了如何使用正则表达式来处理白名单字符和黑名单字符。

正确的解决方案是使您的数据库能够处理这些字符。不要过滤“特殊”字符。保留它们,并学习端到端正确处理字符编码。你确定一开始就正确读取了UTF-8数据吗?不幸的是,@Jayan,这不是一个选项。文本文件是我被赋予的工作,我不知道它们是在哪个字符集创建的。这是我被抓住的岩石和坚硬的地方,严重限制了我以正确的方式做到这一点的能力。:@dwwilson66:您将如何将其转换回真实数据?如果您将输入作为文件,则可以猜测编码-。好吧,你只能猜测。我得到的文件不知道字符集。同意最好允许使用spec字符,但考虑到我必须处理的问题……我计划了数组(虽然我的数组是逐行字节的,因为我已经在解析数据了),但是链接对于如何编写过滤器的信息非常有用。我真的很喜欢白名单而不是黑名单的想法。谢谢