Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

SDK doesn't handle Unicode control characters.

Đang mở
#490 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
api

Hướng nghiên cứu

Bắt đầu với các hàm dựng GetMetadataArg và lệnh gọi DbxUserFilesRequests.getMetadata được hiển thị trong stack trace, sau đó lần theo quá trình xác thực mẫu đường dẫn. Tái hiện đường dẫn U+2028 chưa được escape và so sánh với đầu vào đã được escape; hoàn tất khi Java SDK chấp nhận đường dẫn Unicode thực tế và gửi nó đến API mà không coi văn bản escape là một chuỗi dấu gạch chéo ngược literal.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Basically I have a code that does this:

    private final DbxUserFilesRequests files;

    @SneakyThrows
    public Metadata getMetadata(String path) {
        return files.getMetadata(path);
    }

This works for normal paths that don't contain control characters.

However, if you supply path that contains the Unicode Control Characters that aren't escaped:

/SomeFolder/acces
s_token.txt

It spits out this issue:

 java.lang.IllegalArgumentException: String 'path' does not match pattern
    at com.dropbox.core.v2.files.GetMetadataArg.<init>(GetMetadataArg.java:58)
    at com.dropbox.core.v2.files.GetMetadataArg.<init>(GetMetadataArg.java:80)
    at com.dropbox.core.v2.files.DbxUserFilesRequests.getMetadata(DbxUserFilesRequests.java:1602)

But if you escape the path from unicode characters like this:

acces\u2028s_token.txt

It seems that the library escapes the backslash character, and causes the API to return the Malformed path response.

    "error": {
        ".tag": "path",
        "path": {
            ".tag": "malformed_path"
        }
    }

Unfortunately, I don't really have a choice in renaming the file. Is there a solution we can have to handle the unicode control? Like another method that allows us to supply a string that won't be processed by the SDK?

I know from cURL, it's possible to use the escaped form of the unicode character and get the metadata. However, it's just not a choice I have from the java SDK since it won't do it for me, and it doesn't like the escaped version of unicode.

Ngôn ngữ chính
Java
Star
627
Fork
463
Merge trung bình
5 phút
Pull request đã merge (30 ngày)
10

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dropbox/dropbox-sdk-java

Tất cả issue của dropbox/dropbox-sdk-java

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.