Articles of 字符编码

Sendmail / procmail – 获取邮件发件人和邮件主题,utf8编码问题

我的.procmailrc(真的很简单): :0c | $HOME/send_sms.sh "`formail -xFrom:`" "`formail -xSubject:`" 因此,名为“mail@domain.com”的发件人发送邮件的主题是“Subject testąść”。 脚本“send_sms.sh”收到: 发件人:=? =?UTF-8?Q?mail@domain.com?= <mail@domain.com> Subject: =?UTF-8?Q?Subject_test_=C4=85=C5=9B=C4=87?= 我应该如何修改我的.procmailrc以获得明文? 或者在我的脚本send_sms.sh中转换这个?

写入文件时的UnicodeEncodeError

我有一个python脚本,在我的本地机器(OS X)上效果很好,但是当我将它复制到服务器(Debian)时,它不能按预期工作。 该脚本读取一个xml文件并以新格式打印内容。 在我的本地机器上,我可以使用stdout将脚本运行到terminal或文件(即> myFile.txt ),两者都可以正常工作。 然而,在服务器上( ssh ),当我打印到terminal一切正常,但打印到文件(这是我真正需要)给UnicodeEncodeError: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 。 所有的文件都是utf-8编码,并且在魔术评论中声明了utf-8。 如果我在列表中打印str对象(这是我通常用来获取编码问题的一个技巧),它也会引发同样的错误。 如果使用print( x.encode('utf-8') ) ,那么它会打印代码样式的位(例如b'1' b'\xd0\x9a\xd0\xb0\xd0\xbc\xd0\xb0' ) 。 如果我在shell中$ export PYTHONIOENCODING=utf-8 (如某些SOpost中所build议的),那么我得到一个二进制文件: 1 <D0><9A><D0><B0><D0><BC><D0><B0> 。 我已经检查了所有的localevariables,并且相关的variables与我在本地机器上的variables相匹配。 我可以简单地在本地处理文件并上传,但我真的很想了解这里发生的事情。 由于Python代码在一台计算机上工作,我不确定它是相关的,但我在下面添加它: # -*- encoding: utf-8 -*- import sys, xml.etree.ElementTree as ET corpus = ET.parse('file.xml') […]

Hibernate + MySQL:如何设置数据库和表的编码utf-8

我的系统运行在Linux Mandriva ,RDBMS – MySQL 5上 。 我需要以UTF-8创build数据库和表格。 这里是hibernate.cfg.xml的一个片段 – … <property name="hibernate.hbm2ddl.auto">create-drop</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.characterEncoding">utf8</property> … my.cnf – # The MySQL server [mysqld] … default-character-set=cp1251 character-set-server=cp1251 collation-server=cp1251_general_ci init-connect="SET NAMES cp1251" skip-character-set-client-handshake … [mysqldump] … default-character-set=cp1251 … 例如,一些课程 – @Entity @Table(name = "USER") public class User { @Id @Column(name = "USERID") @GeneratedValue(strategy = GenerationType.AUTO) […]

编码cp-1252为utf-8?

我正在尝试编写一个将在Linux服务器上运行的Java应用程序,但是它将使用cp-1252作为字符集来处理旧版Windows计算机上生成的文件。 反正有编码这些文件为utf-8而不是它生成的cp-1252?

GCC 4.7源字符编码和执行字符编码string文字?

Linux / x86_64上的GCC 4.7是否具有默认字符编码,通过该编码validation并解码C源文件中string文字的内容? 这是可configuration的吗? 而且,当将string数据从string文字链接到输出的数据部分时,它是否具有默认的执行字符编码? 这是可configuration的吗? 在任何configuration中,都可能有一个与执行字符编码不同的源字符编码? (gcc会在字符编码之间进行转码吗?)

有没有办法从UTF8转换为ISO-8859-1?

我的软件得到了一些UTF8string比我需要转换为ISO 8859 1.我知道UTF8域大于iso 8859.但UTF8中的数据已经从ISO上转换,所以我不应该错过任何东西。 我想知道是否有一个简单的/直接的方式从UTF8转换为iso-8859-1。 谢谢

在C / C ++中检测string的编码

给定一个指向字节数组(char)的指针forms的string,如何检测C / C ++中的string编码(我用过visual studio 2008)? 我做了一个search,但大多数样本是在C#中完成的。 谢谢

Emacs在进程缓冲区中显示^ M

目前,我有一个进程缓冲区是utf-8-auto (emacs modeline报告缓冲区为utf-8-auto-dos )与CRLF样式换行符。 当我通过process-send-region或process-send-string将多行文本写入缓冲区时,每行都加上^M后缀。 是什么让这个问题变得很奇怪:直接从进程写入进程缓冲区的文本不包含^M 源文本的来源似乎没有什么区别,事实上,即使是已经出现在进程缓冲区(不包含^M )的已标记和发送的多行区域,在发送时也会有这些区域。 ( 注意 ,process-send-region的源文本将始终来自Emacs缓冲区,process-send-string,当多行将从Windows剪贴板界面移至killring时,或者再次从Emacs缓冲区移至killring。 ) 我还应该补充说,传入缓冲区的文本是由一个after-change-functions钩子(根据input做一些着色)来parsing的,所以最后的手段我会在这个传入上做一个额外的正则regexp-replace-in-string文本作为钩函数的一部分,我想避免,因为它似乎是错误的 ,但我会添加它作为一个hacky的解决scheme,如果没有别的作品。 附录 我更新了缓冲区的编码设置,并使用utf-8-dos而不是utf-8-auto , ^M消失。 所以在我的应用程序的缓冲区设置部分,我做了… (switch-to-buffer "sock-buffer") (set-process-coding-system (get-process sock-process) 'utf-8-dos 'utf-8-dos) (set-buffer-file-coding-system 'utf-8-dos nil) (set-buffer-process-coding-system 'utf-8-dos 'utf-8-dos) 然后减less到只是… (switch-to-buffer "sock-buffer") (set-buffer-process-coding-system 'utf-8-dos 'utf-8-dos) 一切正常。

从Windows和Linux读取文件会得到不同的结果(字符编码?)

目前我正在尝试读取一个MIME格式的文件,其中包含一些PNG的二进制string数据。 在Windows中,读取文件给了我适当的二进制string,这意味着我只是复制string并将扩展名更改为PNG,我看到图片。 在Windows中读取文件后的示例如下: –fh-mms-multipart-next-part-1308191573195-0-53229 Content-Type: image/png;name=app_icon.png Content-ID: "<app_icon>" content-location: app_icon.png ‰PNG 等…等… 在Linux下读取文件后的一个例子如下: –fh-mms-multipart-next-part-1308191573195-0-53229 Content-Type: image/png;name=app_icon.png Content-ID: "<app_icon>" content-location: app_icon.png �PNG 等…等… 我无法将Linux版本转换为图片,因为它们都变成了一些时髦的符号,有很多颠倒的“?” 和“1/2”符号。 任何人都可以启发我正在发生的事情,也许提供一个解决scheme? 现在玩了一个多星期的代码。

字符编码,UTF或ANSI?

我在Ubuntu中使用Eclipse来编辑PHP文件。 但不幸的是,这些PHP文件中的一些是在Windows XP的Notepad ++中创build的,并且定义了ANSI编码。 而且,这些文件会生成charset = ISO-8859-1的HTML代码。 当我将Eclipseconfiguration为ISO-8859-1时,许多特殊字符丢失并更改为“???”,当我尝试使用ISO enconding保存文件时,Eclipse显示的错误不可能保存该文件,因为一些字符与字符集不兼容。 如何在不更改编码的情况下保存这些文件,或者如何更改编码而不丢失字符。