我有一个Perl脚本,它从MySQL表中获取文本值并将其写入文本文件。问题是,当我打开文本文件进行查看时,我会得到很多十六进制字符,例如\x92
和\x93
,它代表单引号和双引号,我猜。
我在将值写入文本文件之前使用DBI->quote
函数来转义特殊字符。我尝试过使用Encode :: Encoder,但没有运气。两个表上的字符集都是latin1
。
如何摆脱这些十六进制字符并让字符显示在文本文件中?
答案 0 :(得分:5)
ISO Latin-1未定义0x80到0x9f范围内的字符,因此需要以十六进制显示这些字节。很可能您的数据实际上是以Windows-1252编码的,这与Latin1相同,只是它定义了此范围内的其他字符(包括左/右引号)。
答案 1 :(得分:1)
答案 2 :(得分:0)
听起来你需要更改表格上的字符集,或者将非latin-1字符翻译成latin-1等价物。我更喜欢第一种解决方案。习惯了Unicode;你将不得不在某个时候学习它。 :)