You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium ChromeDriver.get() UTF-8特殊字符解码异常问题(Java)

问题解决:Selenium ChromeDriver 含特殊字符URL的编码错误处理

核心问题分析

  • 强制设置--charset=UTF-8会和Chrome默认的UTF-8编码逻辑冲突,导致特殊字符(如ú)被错误解码为乱码(ú)
  • URLEncoder.encode()是用于表单数据编码的工具,会将URL中的路径分隔符/也一并编码,破坏原始URL结构

有效解决方案

1. 移除冲突的--charset参数

Chrome默认已使用UTF-8处理URL编码,强制设置该参数反而会引发编码逻辑混乱,直接移除即可:

System.setProperty(
      "webdriver.chrome.driver",
      "C:\\Program Files\\Controllers\\chromedriver-win64\\chromedriver.exe"
);
ChromeOptions options = new ChromeOptions();
// 移除--charset=UTF-8参数,恢复Chrome默认编码逻辑
WebDriver driver = new ChromeDriver(options);

2. 对URL路径分段编码

仅对包含特殊字符的路径片段单独编码,保留/等结构符号不变:

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// ...

// 拆分URL,只编码含特殊字符的部分
String baseDomain = "https://www.";
String encodedSegment = URLEncoder.encode("úrl", StandardCharsets.UTF_8.name());
String restPath = "/example/with/especial-character/";
String validUrl = baseDomain + encodedSegment + restPath;

driver.get(validUrl);

3. 使用URI类标准编码(推荐)

利用Java原生URI类按照RFC标准自动处理URL编码,同时保留完整URL结构:

import java.net.URI;
import java.net.URISyntaxException;

// ...

try {
    // 按URL结构拆分构建URI
    URI uri = new URI(
        "https",       // 协议
        null,          // 用户信息
        "www.úrl",     // 域名
        -1,            // 端口(默认端口传-1)
        "/example/with/especial-character/", // 路径
        null,          // 查询参数
        null           // 锚点
    );
    // 转换为ASCII编码的标准URL
    String encodedUrl = uri.toASCIIString();
    driver.get(encodedUrl);
} catch (URISyntaxException e) {
    e.printStackTrace();
}

4. 统一Selenium依赖版本

当前依赖中selenium-support版本(3.4.0)与selenium-chrome-driver(3.141.59)不一致,可能引发兼容性问题,建议统一版本:

dependencies {
    testImplementation platform('org.junit:junit-bom:5.9.1')
    testImplementation 'org.junit.jupiter:junit-jupiter'
    implementation group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '3.141.59'
    implementation group: 'org.seleniumhq.selenium', name: 'selenium-support', version: '3.141.59'
}

内容的提问来源于stack exchange,提问作者Toms_Hd3z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:27:51