Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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
具有特殊字符的Groovy/Java开放文件路径_Java_Linux_Grails_Special Characters - Fatal编程技术网

具有特殊字符的Groovy/Java开放文件路径

具有特殊字符的Groovy/Java开放文件路径,java,linux,grails,special-characters,Java,Linux,Grails,Special Characters,我试图在Grails服务器上打开一个文件,但问题是我的路径包含特殊字符,如Ç 它在我的OSX环境中工作得很好,但由于我将其上传到linux生产环境,因此出现了错误“没有这样的文件或目录” 区域设置为fr_fr.UTF-8 编辑: 这是我用来访问文件的代码 def reportSystemPath = (pathPrefix + "/${report.cluster.name}" + report.path).replaceAll("//", "/") Path path = Paths.get

我试图在Grails服务器上打开一个文件,但问题是我的路径包含特殊字符,如Ç

它在我的OSX环境中工作得很好,但由于我将其上传到linux生产环境,因此出现了错误“没有这样的文件或目录”

区域设置为fr_fr.UTF-8

编辑:

这是我用来访问文件的代码

def reportSystemPath = (pathPrefix + "/${report.cluster.name}" + report.path).replaceAll("//", "/")
Path path = Paths.get(reportSystemPath)

def bytes = byte[]
path.toFile().withInputStream() {
    bytes = it.getBytes()
}

您是否在linux上部署了与mac相同的war?粘贴一些相关的code@sudhir是的,我正在部署同一场战争。在我的问题日志中添加了一个代码示例,记录路径并检查它是否a)在那里,b)可供用户访问,您的tomcat运行为。另外,这三个变量中的哪一个包含非ascii字符?那根绳子?是什么助长了这些风险?如果它来自一个配置文件,你确定配置文件本身是utf-8吗?@cfrick我已经记录了path.toString(),它的结果完全符合我的预期,而且路径很好并且可以访问,因为在同一个路径上,但在另一个文件名中没有特殊字符的文件,它可以完美地工作。可能包含非ascii字符的var是report.path,其中包含我的文件的路径。最后,这些都不是来自配置文件,即使它是,path.toString()也会正确地打印Ç,因此这不是像
touch“ï.txt”这样天真的方法;LOCALE=fr_fr.UTF-8 groovy-e'assert java.nio.file.path.get(“ï.txt”).toFile().exists()'
适合我。所以我不想假设一个普遍的问题。