“连接字符串编码问题”通常出现在 数据库连接字符串(Connection String) 里包含 中文、特殊字符、空格、密码符号 等场景,导致连接失败或乱码。下面按常见情况给你一套解决思路。
如果密码或参数里有这些字符:
: / @ # ? & = + 空格
很容易被连接字符串解析器误认为分隔符。
✅ 解决:URL 编码(百分号编码)
| 字符 | 编码 |
|---|---|
| 空格 | %20 |
| @ | %40 |
| # | %23 |
| & | %26 |
| + | %2B |
示例(MySQL):
jdbc:mysql://localhost:3306/test?user=root&password=pa%40ss%20word
连接字符串本身不包含中文最好,但:
✅ 解决:
MySQL 示例:
jdbc:mysql://localhost:3306/测试?useUnicode=true&characterEncoding=UTF-8
String url = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8";
密码含特殊字符:
String password = URLEncoder.encode("pa@ss word", "UTF-8");
import urllib.parse
password = urllib.parse.quote("pa@ss word")
conn_str = f"mysql+pymysql://root:{password}@localhost/db"
Server=localhost;Database=test;User Id=root;Password=pa%40ss word;
或使用 SqlConnectionStringBuilder 自动处理编码。
db.password=pa%40ss%20word
db.password=pa@ss word
YAML / JSON 同理,注意引号。
Access denied → 密码编码问题Unknown database → 库名编码@ # & 空格如果你能告诉我:
我可以直接帮你改到可用 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。