【发布时间】:2020-12-26 19:50:52
【问题描述】:
在我的 PHP 脚本中,我使用以下代码与 MS SQL 数据库服务器建立了连接,
$connectionInfo = array( "Database"=>$database,"UID"=>$uid, "PWD"=>$pwd);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
我确实忘记在$connectionInfo 中指定"CharacterSet"=>"UTF-8"。由于这个原因,一些西班牙语和其他字符被编码错误。例如,“álgebra”存储为“álgebra”。现在我已经在连接到数据库期间设置了正确的字符集,新数据将被正确存储。 但是如何恢复编码错误并已经存储的原始字符串?
【问题讨论】:
-
"但是如何恢复原来编码错误并已经存储的字符串呢?" 你不能,数据已经丢失了。您需要重新插入原始数据或
UPDATE现有行,同时引用原始源。 -
没有什么算法可以恢复原字符串吗?
-
不,没有算法或魔法可以恢复原始字符串。
-
不正确代码页的数据丢失在很多方面与截断相同,@SamiulAlam。除非您在某处拥有原始信息的副本,否则丢失的数据将保持原样。
标签: php sql-server character-encoding special-characters