我正在通过curl检索一个gzip压缩网页,但是当我将检索到的内容输出到浏览器时,我只得到原始的gzip压缩数据.如何在PHP中解码数据?
我找到的一种方法是将内容写入tmp文件,然后......
$f = gzopen($filename,"r");
$content = gzread($filename,250000);
gzclose($f);
Run Code Online (Sandbox Code Playgroud)
....但是男人,必须有一个更好的方式.
编辑:这不是文件,而是由Web服务器返回的gzip压缩页面.
我正在尝试用Python将数据编码为JSON,而且我遇到了很多麻烦.我认为这个问题只是一个误解.
我对Python比较陌生,从来没有真正熟悉各种Python数据类型,所以这很可能让我感到困惑.
目前,我正在声明一个列表,循环遍历另一个列表,并在另一个列表中附加一个列表:
import simplejson, json
data = [['apple', 'cat'], ['banana', 'dog'], ['pear', 'fish']]
x = simplejson.loads(data)
# >>> typeError: expected string or buffer..
x = simplejson.dumps(stream)
# >>> [["apple", "cat"], ["banana", "dog"], ["pear", "fish"]]
# - shouldn't JSON encoded strings be like: {{"apple":{"cat"},{"banana":"dog"}}
Run Code Online (Sandbox Code Playgroud)
所以我要么:
我的服务器从Debian 4更新到5后我才被打倒.我们切换到UTF-8环境,现在我们在浏览器上正确打印文本时遇到问题,因为所有文件都是非utf8编码,如iso- 8859-1,ascii等
我尝试了很多不同的脚本.
我试过的第一个是"iconv".那个不起作用,它改变了内容,但是enconding的文件仍然是非utf8.
与enca,encamv,convmv和我通过apt-get安装的其他工具相同的问题.
然后我发现了一个python代码,它使用chardet Universal Detector模块来检测文件的编码(工作正常),但使用unicode类或编解码器类将其保存为utf-8不起作用,没有任何错误.
我发现将文件及其内容转换为UTF-8的唯一方法是vi.
这些是我为一个文件执行的步骤:
vi filename.php
:set bomb
:set fileencoding=utf-8
:wq
Run Code Online (Sandbox Code Playgroud)
而已.那一个很完美.但是如何通过脚本运行它.我想编写一个脚本(linux shell),它遍历一个获取所有php文件的目录,然后使用上面的命令使用vi转换它们.因为我需要启动vi应用程序,我不知道如何做这样的事情:
"vi --run-command=':set bomb, :set fileencoding=utf-8' filename.php"
希望可以有人帮帮我.
这是我尝试解析的示例原始电子邮件:
MIME-version: 1.0
Content-type: text/html; charset=UTF-8
Content-transfer-encoding: quoted-printable
X-Mailer: Verizon Webmail
X-Originating-IP: [x.x.x.x]
=C2=A0test testing testing 123
Run Code Online (Sandbox Code Playgroud)
什么是= C2 = A0?我尝试过半打引号可解析的解析器,但没有一个正确处理. 如何在C#中正确解析它?
老实说,现在,我正在编码:
//TODO WTF
encoded = encoded.Replace("=C2=A0", "");
Run Code Online (Sandbox Code Playgroud)
因为我无法弄清楚为什么该文本在MIME内容中随机存在,并且不应该被渲染成任何东西.通过删除它,我得到了预期的效果 - 但为什么?!
要清楚,我知道(= [0-9A-F] {2})是一个编码字符.但在这种情况下,它似乎代表什么都没有.
在.C#
我们可以使用以下类来进行编码:
System.Text.Encoding.UTF8System.Text.Encoding.UTF16System.Text.Encoding.ASCII为什么没有System.Text.Encoding.Base64?
我们只能使用Convert.From(To)Base64Stringbase64的特殊方法吗?
我可以说base64与UTF-8的编码方法相同吗?或者UTF-8是base64之一?
有谁知道为什么latin1_swedish是MySQL的默认值.在我看来,UTF-8会更兼容吗?
通常选择默认值是因为它们是最好的通用选择,但在这种情况下,它们似乎并不是他们所做的.
我的PHP脚本向用户发送电子邮件,当电子邮件到达其邮箱时,主题行($subject)包含a^£添加到主题文本末尾的字符.这显然是编码问题.电子邮件内容本身很好,只是主题行被打破.
我已经搜遍了所有,但无法找到如何正确编码我的主题.
这是我的标题.请注意,我使用Content-Type同charset=utf-8和 Content-Transfer-Encoding: 8bit.
//set all necessary headers
$headers = "From: $sender_name<$from>\n";
$headers .= "Reply-To: $sender_name<$from>\n";
$headers .= "X-Sender: $sender_name<$from>\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "Importance: 3\n";
$headers .= "Date: $date\n";
$headers .= "Delivered-to: $to\n";
$headers .= "Return-Path: $sender_name<$from>\n";
$headers .= "Envelope-from: $sender_name<$from>\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-Type: …Run Code Online (Sandbox Code Playgroud) 我curl用来获取一些URL响应,它是JSON响应,它包含unicode转义的国家字符,如\u0144 (?)和\u00f3 (ó).
如何将它们转换为UTF-8或任何其他编码保存到文件中?
当我们#用于在Python中插入注释时,Python如何采用:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
不同?
UTF-8是Java中的默认编码吗?
如果没有,我怎么知道默认使用哪种编码?