[BUG] [VSCode Extension] Clickable file links in markdown responses don't work when the URL contains non-ASCII (Chinese) characters
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
In the Claude Code VS Code extension (v2.1.116), when Claude outputs a clickable markdown file link [text](path) whose URL contains non-ASCII characters (e.g. Chinese), clicking the link produces no effect — no navigation, no error message, no visible response.
Only URLs consisting entirely of ASCII characters successfully open the target file.
The display text (the [...] part) containing Chinese does NOT affect behavior; only the URL (the (...) part) matters.
I tested raw Chinese, percent-encoded UTF-8, absolute paths, and file:// protocol URLs — none work when the URL contains Chinese. Only pure ASCII relative paths work.
This significantly hurts usability for non-English users whose project documents are named in their native language.
What Should Happen?
All markdown file links [text](path) that point to existing files in the workspace should open the target file in the editor when clicked, regardless of whether the URL contains ASCII or non-ASCII (e.g. Chinese, Japanese) characters.
The extension should properly decode percent-encoded UTF-8, or accept raw UTF-8, before resolving the path against the workspace root.
Error Messages/Logs
Steps to Reproduce
- Open a workspace in VS Code that contains both ASCII-named and non-ASCII-named files. For example:
project/docs/readme.md(ASCII)project/docs/使用说明.md(Chinese characters)
- In a chat with Claude Code, ask Claude to send links to both files.
- Claude will produce markdown links like:
[project/docs/readme.md](project/docs/readme.md)[project/docs/使用说明.md](project/docs/使用说明.md)
- Click each link in the rendered response.
Observed:
- The ASCII link opens the file in the editor correctly.
- The Chinese link does nothing — no navigation, no error.
Also tested and confirmed NOT working:
- Percent-encoded Chinese:
(project/docs/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) - Absolute Windows path:
(/d:/.../使用说明.md) - file:// protocol:
(file:///d:/.../使用说明.md)
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.116
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
Environment Details
- Claude Code VS Code extension version: 2.1.116
- Claude Code CLI version: 2.1.116 (Claude Code)
- VS Code: latest on Windows 10 Pro (10.0.19045)
- Workspace type: multi-root workspace, opened via
.code-workspacefile
Important Note
This bug is about the VS Code extension's link-click handler, not the CLI. The CLI itself is not involved — the issue is purely in how the extension renders and handles markdown file links in chat responses.
Tested Variations (none of these Chinese-containing URLs work)
| # | URL format | Works? |
|---|---|---|
| 1 | (qs/docs/使用说明.md) — raw Chinese, relative path | ❌ |
| 2 | (qs/docs/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) — percent-encoded | ❌ |
| 3 | (/d:/work/.../使用说明.md) — absolute Windows path | ❌ |
| 4 | (file:///d:/work/.../使用说明.md) — file:// protocol | ❌ |
| 5 | (qs/docs/readme.md) — pure ASCII relative path (control) | ✅ |
Only #5 (pure ASCII) works. This strongly suggests the extension is failing to handle UTF-8 in URIs before resolving them against the workspace root.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗