这是一个黑暗中的镜头,如果这个问题听起来像一个疯子的谣言,我会提前道歉.
作为与第三方集成的一部分,我需要使用C#对一些字符串信息进行UTF8编码,以便我可以通过多部分表单将其发送到目标服务器.问题是他们拒绝了我的一些提交,可能是因为我没有正确编码他们的内容.
现在,我正在试图找出一个短划线或连字符 - 我不知道它只是通过观察它是什么 - 被目标服务器接收或解释为?~@~S(是的,这是一个5个字符的字符串并不是你的浏览器出现故障).不幸的是,我没有足够的理解Encoding.UTF8.GetBytes()知道如何使用字节数组来开始识别问题所在.
如果有人可以提供任何提示或建议,我将不胜感激.到目前为止,我唯一的朋友是MSDN,并没有那么多.
更新1:经过一些挖掘后,我发现使用System.Web.HttpUtility.UrlEncode()编码EM DASH字符(" - ")会将其十六进制编码为"%e2%80%94".
我目前正在HttpWebRequest帖子中发送此信息,内容类型为"application/x-www-form-urlencoded" - 这可能导致问题吗?如果是这样,编码一系列名称 - 值对的正确方法是什么,这些名称 - 值对的值可能包含Unicode字符,以便服务器能够理解它需要UTF-8请求?
我的理解是,对UTF8或UTF16编码文件的读取不一定是随机的,因为偶尔会有代理字节(例如在东方语言中使用).
如何使用.NET跳转到文件中的大致位置,并从半随机位置读取unicode文本?
我是否丢弃代理字节并等待分词继续阅读?如果是这样,在我开始解码之前,我应该等待的有效单词中断是什么?
在Delphi XE7 Update 1中,尝试在VCL程序中执行此代码时:
uses System.NetEncoding;
...
tempstring := TNetEncoding.Base64.Decode(tempstring);
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:

那么如何使用NetEncoding对字符串进行base64解码呢?
给定一个字节流(生成器,文件等),我如何读取单个utf-8编码字符?
我可以通过滚动我自己的utf-8解码功能来解决这个问题,但我宁愿不重新发明轮子,因为我确信这个功能必须已经在其他地方用来解析utf-8字符串.
当我输入Firefox(在地址行中)URL(如http://www.example.com/?query=Траливали)时,它会自动编码为http://www.example.com/?query=%D2%F0 %E0%EB%E8%E2%E0%EB%E8.
但是,不转换http://www.example.com/#ajax_call?query=Траливали等网址.
其他浏览器(如IE8)根本不会转换查询.
问题是:如何检测(在PHP中)查询是否被编码?怎么解码呢?
我试过了:
$ str = iconv('cp1251','utf-8',urldecode($ str));
$ str = utf8_decode(urldecode($ str));
$ str =(urldecode($ str));
许多函数来自http://php.net/manual/en/function.urldecode.php 没有任何作用.
测试:
$ str = $ _GET ['str'];
d('%D2%F0%E0%EB%E8%E2%E0%EB%E8'== urldecode('%D2%F0%E0%EB%E8%E2%E0%EB%E8'));
d('%D2%F0%E0%EB%E8%E2%E0%EB%E8'== $ str);
d('Траливали'== $ str);
d(urldecode($ STR));
d(utf8_decode(urldecode($ STR)));
!d('%D2%F0%E0%EB%E8%E2%E0%EB%E8'== urlencode($ str)); !
返回:
[false] [false] [false] ???? [真正]
某种解决方案:http://www.example.com/Траливали/ - 将查询作为url部分发送,并使用mod_rewrite进行解析.
我正在使用FileUpload服务器控件上传以前从MS Word保存(作为网页;已过滤)的HTML文档.charset是windows-1252.该文档具有智能引号(卷曲)以及常规引号.它还有一些空白(显然),当看起来很深的是正常的TAB或SPACE之外的字符.
在StreamReader中捕获文件内容时,这些特殊字符将转换为问号.我假设它是因为默认的encoidng是UTF-8而且文件是Unicode.
我继续使用Unicode编码创建StreamReader,然后用正确的字符替换所有不需要的字符(我实际在stackoverflow中找到的代码).这似乎工作....只是我不能将字符串转换回UTF-8以在asp:literal中显示它.代码在那里,它应该工作....但输出(ConvertToASCII)是不可读的.
请看下面:
protected void btnUpload_Click(object sender, EventArgs e)
{
StreamReader sreader;
if (uplSOWDoc.HasFile)
{
try
{
if (uplSOWDoc.PostedFile.ContentType == "text/html" || uplSOWDoc.PostedFile.ContentType == "text/plain")
{
sreader = new StreamReader(uplSOWDoc.FileContent, Encoding.Unicode);
string sowText = sreader.ReadToEnd();
sowLiteral.Text = ConvertToASCII(sowText);
lblUploadResults.Text = "File loaded successfully.";
}
else
lblUploadResults.Text = "Upload failed. Just text or html files are allowed.";
}
catch(Exception ex)
{
lblUploadResults.Text = ex.Message;
}
}
}
private string ConvertToASCII(string source)
{
if (source.IndexOf('\u2013') > -1) source = source.Replace('\u2013', …Run Code Online (Sandbox Code Playgroud) 我最近在这个帖子中解决了使用utf8_decode函数输出外来字符的问题:如何在PHP中转换,显示和存储这些字符?
它通过直接回显结果来工作,但现在我有这个json_encode函数传递给jquery的结果.Json_encode将我的数据转义为这样的:
{"title":"\u90ed\u5bcc\u57ce - \u641c\u7d22"}
Run Code Online (Sandbox Code Playgroud)
我如何从jquery json_decode?谢谢你的任何建议.
我正在使用C语言创建ASN.1解析器(使用Ericsson ASN1规范文档).我想解码UTF-8字符串类型,但我无法在线找到有关此信息,我正在使用的文档没有详细描述UTF-8字符串.任何人都可以为我提供一些代码,或解释如何解码它.
我是ASN.1的新手.
我正在尝试使用支持CP437编码的热敏打印机从诗歌基金会的每日诗歌RSS源中打印一首诗.这意味着我需要翻译一些角色; 在这种情况下,连字符连字符.但python甚至不会编码en dash开头.当我尝试解码字符串并用连字符替换en-dash时出现以下错误:
Traceback (most recent call last):
File "pftest.py", line 46, in <module>
str = str.decode('utf-8')
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 140: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
#!/usr/bin/python
#-*- coding: utf-8 -*-
# This string is actually a variable entitled d['entries'][1].summary_detail.value
str = """Love brought by night a vision to my bed,
One that still wore the vesture of a child
But eighteen …Run Code Online (Sandbox Code Playgroud) utf8-decode ×10
utf-8 ×7
c# ×4
encoding ×2
php ×2
unicode ×2
asn.1 ×1
asp.net ×1
base64 ×1
c ×1
decode ×1
decoder ×1
delphi ×1
delphi-xe7 ×1
javascript ×1
jquery ×1
printing ×1
python-2.7 ×1
python-3.x ×1
url ×1
utf-16 ×1