首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径名中的Eclipse OpenJ9、-XX:+CompactStrings和商标符号

路径名中的Eclipse OpenJ9、-XX:+CompactStrings和商标符号
EN

Stack Overflow用户
提问于 2020-12-30 01:20:19
回答 1查看 70关注 0票数 0

我刚刚注意到Eclipse OpenJ9和-XX:+CompactStrings VM标志出现了一个奇怪的问题。我想知道这是一个bug,还是仅仅是我对某些东西的误解...?

下面是发生的事情:

收到来自DirectoryStream的路径后,如果该路径中包含商标符号(™),则该符号将被转换为另一个字符,引号(")。

仅当启用了紧凑字符串时,才会发生这种情况。

我在Windows10上使用的是最新的Eclipse OpenJ9 (v0.23.0)。

HotSpot显然在默认情况下启用了压缩字符串,但它没有同样的问题。

以下是演示该问题的示例代码:

代码语言:javascript
复制
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;

public class TrademarkSymbol {

    public static void main(String[] args) {

        // First, create the file Test™.txt somewhere

        Path path = Paths.get("C:\\test\\Test™.txt");

        // This works (the file exists):

        System.out.println(path + " exists? " + Files.exists(path, LinkOption.NOFOLLOW_LINKS));

        // However, now try to get the path via DirectoryStream:
        Path parent = path.getParent();
        try {

            DirectoryStream<Path> stream = Files.newDirectoryStream(parent);

            stream.forEach(it -> {

                // Here, the path no longer exists, because the trademark-symbol has been replaced with "-character.

                System.out.println(it + " exists? " + Files.exists(it, LinkOption.NOFOLLOW_LINKS));
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 06:26:55

只是在Eclipse OpenJ9 GitHub代码库中创建了一个问题,这个问题已经在代码中得到了修复。你可以在这里跟踪整个对话,直到修复:

https://github.com/eclipse/openj9/issues/11650

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65496100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档