Postgresql 如何在PSQLDBC驱动程序密码中使用特殊字符
在Postgres PSQLDBC驱动程序中,在连接字符串中使用特殊字符,如密码Postgresql 如何在PSQLDBC驱动程序密码中使用特殊字符,postgresql,odbc,connection-string,visual-foxpro,psqlodbc,Postgresql,Odbc,Connection String,Visual Foxpro,Psqlodbc,在Postgres PSQLDBC驱动程序中,在连接字符串中使用特殊字符,如密码 sqlstringconnect('DRIVER={PostgreSQL Unicode};PWD=pü') 或者以url编码的形式 sqlstringconnect('DRIVER={PostgreSQL Unicode};PWD=p%C3%BC') 抛出密码错误 据 及 PWD=p%C3%BC 应该被接受为pü 如何在密码中使用特殊字符 客户端应用程序是Microsoft Visual Foxpro 9
sqlstringconnect('DRIVER={PostgreSQL Unicode};PWD=pü')
或者以url编码的形式
sqlstringconnect('DRIVER={PostgreSQL Unicode};PWD=p%C3%BC')
抛出密码错误
据
及
PWD=p%C3%BC
应该被接受为pü
如何在密码中使用特殊字符
客户端应用程序是Microsoft Visual Foxpro 9
在系统区域设置为Windows-1257(波罗的海Windows)的Windows 10非unicode应用程序中使用带32位PSQLDBC驱动程序13.00.0000的Postgres 13.1,看起来不错。查看PostgreSQL日志。如果这表明密码错误,请使用Wireshark确定实际发送到PostgreSQL server的密码。我在登录服务器接受一些命令后尝试了
log\u statement=all
,但从odbc驱动程序生成的命令开始选择n.nspname、c.relname、a.attname、a.atttypid、t.typname代码>失败。日志文件包含用户“测试”的密码身份验证失败。
在执行某些命令后,密码似乎丢失。可能连接池以错误的格式存储密码。如何诊断此问题?@LaurenzAlbe Wireshark显示流量,其中一些流量使用PGSQL
协议。如何找到初始连接后发送的密码?Cliend和server位于同一台Windows 10计算机中。流量将包含哈希密码。有关消息格式,请参阅。您可以临时切换到password
authentication以获取消息中的明文密码。然后您可以检查真正发送的内容,这将帮助您进行调试。