我对编码的URL感到困惑.
例如,当我编写浏览器时:
stackoverflow.com/questions
Run Code Online (Sandbox Code Playgroud)
我可以成功查看该页面.
但是,当我写:
stackoverflow.com%2Fquestions
Run Code Online (Sandbox Code Playgroud)
我无法查看.
由于%2F表示"/",我想了解为什么这不能正常工作.
我想知道的原因是我得到一个编码的URL,我不知道如何在收到它后立即解码该URL,以便没有错误页面.
我从包含半utf8编码的文件中读取行,并且我希望将其转换为Perl内部表示以进行进一步操作.
file.in(纯ASCII):
MO\\xc5\\xbdN\\xc3\\x81
NOV\\xc3\\x81
Run Code Online (Sandbox Code Playgroud)
这些应转换为MOŽNÁ和NOVÁ.
我加载行并将它们升级到正确的utf8表示法,即.\\xc5\\xbd -> \x{00c5}\x{00bd}.然后我想升级$line并使perl在内部表示它:
for my $line (@lines) {
$line =~ s/x(..)/x{00$1}/g;
eval { $l = "$line"; };
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有成功.
我从外部Microsoft SQL 2008数据库接收数据(我使用MyBatis进行查询).在理论上,我在"Windows-1252"上接收数据编码.
我用这段代码尝试解码数据:
String textoFormado = ...来自MyBatis的价值......;
String s = new String(textoFormado.getBytes("Windows-1252"),"UTF-8");
几乎所有String都被正确解码.但是有一些字母没有.
例如:
我有一个问题,我认为是微不足道的.我必须处理德语字母表中的变形金刚(äöü).在Unicode中,似乎有几种方法可以显示它们,其中一种方法是组合字符.我需要规范化这些不同的方式,用一个字符的代码替换它们.
很容易找到这样一个离经叛道的变音符号:它是一个字母aou,后面是UTF-8字符\uCC88.所以我认为正则表达式就足够了.
这是我的转换功能,使用Encoding包.
# This sub can be extended to include more conversions
sub convert {
local $_;
$_ = shift;
$_ = encode( "utf-8", $_ );
s/u\xcc\x88/ü/g;
s/a\xcc\x88/ä/g;
s/o\xcc\x88/ö/g;
s/U\xcc\x88/Ü/g;
s/A\xcc\x88/Ä/g;
s/O\xcc\x88/Ö/g;
return $_;
}
Run Code Online (Sandbox Code Playgroud)
但是由此产生的印刷变音符号是一些更狡猾的字符(现在占用4个字节),而不是此列表中的那个.
我想问题是这个与Perl的内部格式,实际的UTF-8和这种编码格式相关.
甚至将替换线更改为
s/u\xcc\x88/\xc3\xbc/g;
s/a\xcc\x88/\xc3\xa4/g;
s/o\xcc\x88/\xc3\xb6/g;
s/U\xcc\x88/\xc3\x9c/g;
s/A\xcc\x88/\xc3\x84/g;
s/O\xcc\x88/\xc3\x96/g;
Run Code Online (Sandbox Code Playgroud)
没有帮助,他们正确转换,但后面跟着字母"\ xC2\xA4".
有帮助吗?
试图使用Twitter搜索API.当我拨打utf8_decode重新推文的推文时,我会将语音标记/引号显示为问号...
码:
$output .= '
<div class="leftcoltweet">
<div class="timg">
<a href="' . $account . '" target="_blank"><img src="' . $image .'"></a>
</div>
<div class="ttweet">
' . utf8_decode($tweet) . '
</div>
<div class="clr"></div>
<div class="ttime">' . $time . '</div>
<div class="clr"></div>
</div>
';
Run Code Online (Sandbox Code Playgroud)
输出:
RT @IVAOAERO: ?@FilipJonckers: We are aware of and working on a fix for the ATIS issue introduced after last nights network upgrade http://t.co/6FODzr0Y?
Run Code Online (Sandbox Code Playgroud)
所有其他符号正确显示.
我必须设置要使用的语言吗?如果您想知道我制作的原子查询或其他任何内容,请告诉我.
StringBuilder request = new StringBuilder();
request.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
byte[] msg;
string decoded;
msg=System.Text.Encoding.UTF8.GetBytes(request.ToString());
decoded = System.Text.Encoding.UTF8.GetString(msg);
Run Code Online (Sandbox Code Playgroud)
解码了 <?xml version=\"1.0\" encoding=\"UTF-8\"?>
结果有\"
我的问题是如何用引号对消息进行编码,并且\"在decdoing之后仍然得到字符串如果我使用AppendLine,结果也有\r\n
我有一个运行在PHP 5上的应用程序,使用mysqli扩展访问和存储MySQL数据库.该数据库包含许多表格,编码为UTF-8(collation utf8_swedish_ci).
不幸的是,似乎mysqli连接被配置为使用ISO-8859-1编码所有内容,这意味着我有包含latin1数据的UTF-8表.我现在试图通过将所有内容转换为UTF-8来修复此问题(应该是这样!)
有没有内置的处理方式?如果没有,你会如何推荐我解决这个问题?
编辑:使用PHPMyAdmin浏览所有数据时的数据示例:
handelë(应该handelë)
√skal(应该?skal)
此外,数据在HTML文档中正确输出,只要我使用输出编码UTF-8,但将mysqli连接字符集保持为latin1.这一切都相当令人困惑.
非常感谢您的帮助!
我有一个utf-8编码的文件,其中包含多行,例如
\ x02我不喜欢\ x0307香蕉\ x03。\ x02 嗨,你好吗? 你打过电话了?
如何将文件的行读取到列表中,对所有转义序列进行解码?我尝试了下面的代码:
with codecs.open(file, 'r', encoding='utf-8') as q:
quotes = q.readlines()
print(str(random.choice(quotes)))
Run Code Online (Sandbox Code Playgroud)
但是它打印行而不解码转义字符。
\ x02我不喜欢\ x0307香蕉\ x03 \ x02
(请注意:转义字符是IRC颜色代码,\x02是加粗文本的字符,并且\x03是颜色代码的前缀。此外,此代码来自我的IRC僵尸程序,其中的MSG功能由代替print())
我正在追逐Perl代码中的一个错误,似乎从根本上说是一个版本:
基本上,在某些条件下,Encode::decode('utf8', $string)在相同的字符串上被调用两次,并且随之而来的是欢闹.现在,最好的解决方案是找出导致双重解码的条件并阻止其发生.不幸的是,这是功能丰富的产品的成熟生产代码; 找出这些条件并以不引入回归错误的方式修复它们看起来很有挑战性.
是否有一些快速可靠的方法来检测字符串是否已经从utf8解码?在这些调用之前插入"if"语句感觉有点笨拙,但应该是一个非常安全的修复.
我有简单的代码来获取网站的响应,但有一个小问题.我试图从俄罗斯网站和一个网站得到回复我不知道的符号和其他我得到正常的文本.哪里可能有问题?
回复:www.kinopoisk.ru
......
回复:www.yandex.ru
Греция - Чехия.1:2 ...
HttpWebRequest http = (HttpWebRequest) HttpWebRequest.Create("http://");
http.Timeout = 30000;
http.KeepAlive = true;
http.ContentType = "application/x-www-form-urlencoded";
http.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0";
http.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
http.Proxy = null;
WebResponse response = http.GetResponse();
Stream istream = response.GetResponseStream();
StreamReader reader = new StreamReader(istream);
Response.Write(reader.ReadToEnd());
reader.Close();
Run Code Online (Sandbox Code Playgroud) 我用这个函数来解码UTF-8:
function DecodeUTF8(s)
dim i
dim c
dim n
i = 1
do while i <= len(s)
c = asc(mid(s,i,1))
if c and &H80 then
n = 1
do while i + n < len(s)
if (asc(mid(s,i+n,1)) and &HC0) <> &H80 then
exit do
end if
n = n + 1
loop
if n = 2 and ((c and &HE0) = &HC0) then
c = asc(mid(s,i+1,1)) + &H40 * (c and &H01)
else
c = 191
end if
s = …Run Code Online (Sandbox Code Playgroud) php可以将所有charset编码的字符串转换为utf8吗?
无效的解决方案:
utf8_encode($string) - 但它只能将ISO-8859-1字符串编码为UTF-8?iconv($incharset, $outcharset,$text) - 但怎么能找到字符串当前编码?(只能是html dom文件的字符串部分,而不仅仅是字符串)谢谢
utf8-decode ×13
utf-8 ×4
c# ×3
perl ×3
php ×3
.net ×1
asp-classic ×1
encoding ×1
html ×1
iconv ×1
java ×1
mysql ×1
python ×1
urldecode ×1
windows-1252 ×1