在我的 Linux 开发系统上,我使用fakemail将邮件写入目录而不是发送它们。邮件文件包含邮件的标题和文本,以 UTF-8 格式显示为可引用打印、文本/纯文本。如何读取单个邮件文件并“解码”引用的可打印文件,以便正确显示换行符和特殊字符?
以下是带有换行符和特殊字符的德语邮件文件示例:
Message-ID: <1317977606.4e8ebe06ceab7@myserver.local>
Date: Fri, 07 Oct 2011 10:53:26 +0200
Subject: Registrierung
From: me@me.com
To: tt99@example.com
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Hallo,
Sie haben sich auf Meinserver.de als Benutzer regist=
riert. Um Ihre
Registrierung abzuschlie=C3=9Fen, klicken Sie auf folg=
enden Link:
http://meinserver.de/benutzer/bestaetigen/3lk6lp=
ga1kcgcg484kc8ksg
Run Code Online (Sandbox Code Playgroud)
我希望将特殊字符替换为其适当的对应字符,并删除由带引号的可打印编码(末尾带有“=”的编码)插入的换行符。
Namecheap 托管的许多域包含奇怪的 DNS TXT 记录,这些记录似乎是 base64 编码的,解码后看起来像一种奇怪的 MX 记录 - 具有优先级和域的结构。这些是干什么用的?似乎没有任何关于这些的文件。有成千上万个这样的例子,但没有明确的目的或文档。有谁知道这些是做什么用的?
一些例子:
everythingforsight.org.有一个 TXT 记录,MAltYWlsLmV2ZXJ5dGhpbmdmb3JzaWdodC5vcmcuCg==其解码为
0 mail.everythingforsight.org.1eyeworks.com.有一个 TXT 记录,MAltYWlsLjFleWV3b3Jrcy5jb20uCg==其解码为0 mail.1eyeworks.com.使用 W3C 验证器验证我的网页时,我注意到虽然我在 HTML 中指定了 ISO-8859-1 编码,但 Web 服务器似乎在 HTTP 标头中指定了 UTF-8 编码。
我到处找,但似乎找不到改变这一点的方法 - 我错过了什么吗?
我有一个 mod_include (SSI) 页面,它在 HTTP/1.1 浏览器请求时在分块编码期间生成错误输出。
当 HTTP/1.0 请求页面时,页面输出正常(因为输出没有分块)。
如何在 HTTP/1.1 浏览器请求时告诉 Apache不要使用分块编码?
更多信息:错误的分块输出是由于在带有 sparc 处理器的 Solaris 5.10 机器上启用了 sendfile() 支持造成的。禁用 sendfile() 支持会导致这个问题消失;但是我试图抓住这个错误并修复它。
创建新的 postgresql 集群时,您可以为集群指定编码,但我不确定在创建集群后如何检索它。
我已经看到,\encoding你可以看到一个编码,但我不知道这是集群的编码还是客户端的编码。
我还看到,\l我可以看到每个数据库使用的编码。
并SHOW server_encoding显示另一种编码。
查询初始化期间使用的值的正确方法是什么?
我现在正在工作,我的同事为我准备了一个 Debian 服务器并离开了。
现在我才发现我可以从 Windows (XP) 机器上使用 PuTTY ssh 进入它就好了(遗憾的是,这里没有 Linux 机器)但是不知何故,当我在 mac 上时,ssh [user@ip]不接受我的密码。
与 SFTP 相同:WinSCP 工作正常,命令行 SCP 或任何 SFTP 软件(如 CyberDuck)根本无法工作。(“错误的用户名或密码”)
我唯一的线索是 OSX 上的 FileZilla 能够在我将其设置为使用不存在的编码时进行连接。它抱怨无效的编码,然后连接就好了。将编码设置为 UTF-8 或自动检测只会再次出现身份验证错误。
ServerFault,你知道如何让这台 Mac 正确连接到机器吗?非常感激。
编辑:这是 ssh -v 的输出:
Angua:~ winsmith$ ssh -v web96_rootmaster@IPADDRESS
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to IPADDRESS [IPADDRESS] port 22.
debug1: Connection established.
debug1: identity file /Users/winsmith/.ssh/identity type -1
debug1: identity file /Users/winsmith/.ssh/id_rsa type -1
debug1: identity …Run Code Online (Sandbox Code Playgroud) 服务器信息(删除了 DNS 和 IP):
cat /proc/version && uname -a && java -version
Linux version 2.6.16.33-xenU (*************) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #2 SMP Wed Aug 15 17:27:36 SAST 2007
Linux ************* *************-xenU #2 SMP Wed Aug 15 17:27:36 SAST 2007 x86_64 x86_64 x86_64 GNU/Linux
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我有一些 PHP 代码正在读取 Excel 文件并进行字符串比较。由于似乎是语言环境问题,它在服务器上失败。然而,在我的本地机器(OSX 10.8.5 Mountain Lion)上,它可以工作!
在我的本地机器上,语言环境是 en_US.UTF-8。在服务器上,语言环境是 POSIX,但我将其更改为 en_US.utf8,因为当我查看locale -a时没有 en_US.UTF-8 …
我正在使用递归方式从远程目录下载文件wget,无论是谁创建了文件夹和文件,使用了特殊字符,例如è或Ó,当我下载指定完整路径+文件名的单个文件时,文件将以其名称正确下载,但是当我只需尝试使用-r文件名未正确编码或解码的选项下载包含所有文件和目录的文件夹。
从我收集到的信息来看,文件名ascii在请求中作为 an发送,并且我的机器和服务器都UTF-8对 进行了编码$PATH,所以它也不应该是一个问题。
当 wget 创建文件时,文件名中的è字符(我将以此为例)保存为\350八进制字符代码,并显示为è. 这只发生在我递归下载文件时,如果我使用完整的 URL 下载这个文件,文件名就会正确显示。
我花了几个小时了相当数量的查找Q / A在这里和那里,我已经尝试了一切我所看到的,从环境--local-encoding和--remote-encoding到UTF-8,使用--restrict-file-names=nocontrol等
端口 21 和 22 已关闭,因此我无法通过 SCP 或 FTP 下载文件,很可能任何其他下载文件的协议都会出现相同的错误,但我可以使用任何不常见的文件.
另外我遇到的主要问题是,当我下载文件时,当我尝试将它们复制到备份文件夹时,由于文件名被弄乱,某些文件有时会给我一个找不到文件的错误,例如现在我使用--restrict-file-names=ascii并保留名称ascii作为解决方法,但我需要将编码更改为UTF-8,而且我无法在机器上安装任何应用程序,例如 convmv(来自老板的命令)。
这是我一直用来下载文件的命令:
wget --keep-session-cookies --cookies=on --no-check-certificate --restrict-file-names=nocontrol --convert-links --no-parent -r <URL>
这是通过递归下载单个文件与所有文件来保存文件名的方式:
OT14-004 CEIP Pins del Vallès.vsd
OT14-004 CEIP Pins del Vallès.vsd
我正在使用带有此发行版 …
我正在自动化一个需要 HTTP 基本身份验证的网站。
在大多数情况下,此链接中给出的建议非常有效:
您可以在 URL 参数中传递 HTTP 基本身份验证的用户名/密码吗?
但部分用户的密码中带有问号(?)。请告知如何避免问号。
PS我知道@在用户名中可以转义为%40.
我托管的网页的 URL 中包含“ \”,与托管静态文件的project\xc2\xb2磁盘目录相匹配。project\xc2\xb2
此页面由基于 java 的客户端用来从 URL(生物信息学软件IGV)加载数据。\n我的页面以 的形式列出 URL http://localhost:60151/load?file=http://example.org/project\xc2\xb2/some/data/file.bam。\n在浏览器中单击这些链接将导致 IGV 客户端(在本地主机上运行)发出请求GET http://example.org/project\xc2\xb2/some/data/file.bam从我的服务器。
Linux/Mac 上的 \xe2\x9c\x85 IGV 通过请求此 URL 作为 UTF-8 编码\xc2\xb2=进行响应%C2%B2,一切正常。
\n\xe2\x9d\x8c 我新获得的Win-10用户的客户端请求\xc2\xb2= %B2(windows-1252编码),导致404-not-found。
在尝试了几十种方法之后,我不知道如何帮助这个用户。
\n我的印象是我应该能够在服务器端动态重写错误编码的 URL,以便它们最终仍然提供所需的数据,但是我不知道使规则模式匹配的神奇字符组合转义字符。
\nGET %B2我的ssl_access_logwith404作为返回的状态码,所以它确实是服务器在做。URI::Encode encode_uri(显然?),这在某种程度上更加错误?\xc2\xb2%C3%82%C2%B2 …encoding ×10
charset ×2
email ×2
linux ×2
utf-8 ×2
.htaccess ×1
apache-2.2 ×1
apache-2.4 ×1
centos ×1
chunked ×1
iis ×1
localization ×1
mac-osx ×1
mod-rewrite ×1
mx-record ×1
php ×1
postgresql ×1
selenium ×1
ssh ×1
txt-record ×1
url ×1
wget ×1