我有一个简单的数组:
array
0 => string 'Kum' (length=3)
1 => string 'Kumpel' (length=6)
Run Code Online (Sandbox Code Playgroud)
当我使用json_encode()编码数组时,我得到以下信息:
["Kum","Kumpel"]
Run Code Online (Sandbox Code Playgroud)
我的问题是,["Kum","Kumpel"] 取代的原因是什么{ "0" : "Kum", "1" : "Kumpel" }?
我正在尝试在我正在处理的几个URL中URL-escape(百分比编码)非ascii字符.我正在使用一个Flash应用程序来加载来自这些URL的图像和声音片段等资源.由于文件名可以包含非ascii字符,如下所示:
???.jpg
我通过对字符进行utf-8编码来转义它们,然后以百分比形式转义unicode字节,以获得以下内容:
%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
当我在Internet Explorer以外的任何浏览器中运行应用程序时,这些文件名工作正常 - 我尝试过Firefox,Safari和Chrome.但是,当我在IE中启动应用程序(尝试6和8)并尝试加载声音片段时,我得到:
Error #2044: Unhandled ioError,并且URL已损坏为类似:
æ¥æ¬èª.jpg
有关如何解决此问题的任何想法?这只是用本地文件系统URL测试驱动Flash应用程序.我还注意到,Internet Explorer无法找到一个文件,例如:
file:///C:/%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg,虽然Chrome/Firefox会解码它并加载适合带路径的文件
C:\???.jpg
编辑
我认为我的问题与以下ActionScript代码片段中遇到的问题相同:
import flash.display.Loader;
import flash.net.URLRequest;
...
var ldr:Loader;
var req:URLRequest = new URLRequest("???.jpg");
ldr = new Loader();
ldr.load(req);
Run Code Online (Sandbox Code Playgroud)
使用该字符串???.jpg将在IE中工作,而使用该字符串%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg在其他浏览器中工作.我需要的是一个适用于所有浏览器的单一表单.我已经尝试过%u编码并将http请求标头设置为Content-Type: text/html; charset=utf-8在%转义或非转义形式中没有运气.
@encode指令返回一个const char*,它是传入的数据类型的各种元素的编码类型描述符.示例如下:
struct test
{ int ti ;
char tc ;
} ;
printf( "%s", @encode(struct test) ) ;
// returns "{test=ic}"
Run Code Online (Sandbox Code Playgroud)
我可以看到使用sizeof()来确定原始类型 - 如果它是一个完整的对象,我可以使用类方法进行内省.
但是,它如何确定不透明结构的每个元素?
Html实体必须在HTML页面中的图像的alt属性中进行编码.所以
<img id="formula" alt="A → B" src="formula.png" />
Run Code Online (Sandbox Code Playgroud)
会运作良好.
另一方面,相同的JavaScript代码将无法使用
document.getElementById('formula').alt = 'A → B';
Run Code Online (Sandbox Code Playgroud)
并将产生A→ B而不是A→B.
当无法在源代码中放入特殊(未编码)字符时,如何通过JavaScript实现?
我正在开发一个应用程序,用户上传视频并使用jwplayer,jplayer,flowplayer等将其播放回浏览器.有些视频立即播放,而其他视频则等到整个视频文件下载完毕.
我正在使用ffmpeg将视频转换为mp4格式.
以下是我尝试的其中一个视频文件的一些详细信息.
General
Complete name : 429183132058337290450_AutoFF.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 10.2 MiB
Duration : 24s 333ms
Overall bit rate : 3 501 Kbps
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 24s 333ms
Bit rate mode …Run Code Online (Sandbox Code Playgroud) 我想在PowerShell中将字符串编码为UTF8.
这是我试过的:
$consumer_key ="xvz1evFS4wEEPTGEFPHBog"
$enc_consumer_key = System.Text.UTF8Encoding($consumer_key)
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
System.Text.UTF8Encoding无法识别为cmdlet的名称
查看html块中类的名称.它们经过编码后很难理解.
<div id=":21r" class="ii gt m14b0b8af41495ba9 adP adO">
<div id=":21o" class="a3s" style="overflow: hidden;">
<div dir="ltr">
<div class="adL"></div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我不认为谷歌的工程师如此失业,无法手动编码这些类.他们必须使用一些工具来编写类.有没有可用的服务?
我想加密给定网址的Id部分,我使用SHA-1.此算法将id转换为以下字符串:
NxVhIhrfbZNzyxqtudUZdiv4DdQA9nF1Zn7CueGUiT8 = | h1bCRiN5zxexiIhHp + qNEQ0jVh/8fMGiIkeTf30LVdU =
因此,我的最终网址将是这样的:
http://localhost:9432/Product/Edit/NxVhIhrfbZNzyxqtudUZdiv4DdQA9nF1Zn7CueGUiT8=|h1bCRiN5zxexiIhHp+qNEQ0jVh/8fMGiIkeTf30LVdU=
Run Code Online (Sandbox Code Playgroud)
此URL具有一些导致请求失败的字符.例如,url中不允许使用"+".所以我使用HttpUtility.UrlEncode()了加密的Id并得到了这个字符串:
NxVhIhrfbZNzyxqtudUZdiv4DdQA9nF1Zn7CueGUiT8%3D%7ch1bCRiN5zxexiIhHp%2bqNEQ0jVh%2f8fMGiIkeTf30LVdU%3D
现在我的网址是:
http://localhost:9432/Product/Edit/NxVhIhrfbZNzyxqtudUZdiv4DdQA9nF1Zn7CueGUiT8%3d%7ch1bCRiN5zxexiIhHp%2bqNEQ0jVh%2f8fMGiIkeTf30LVdU%3d
Run Code Online (Sandbox Code Playgroud)
但是,使用上面的url会导致以下错误:
该请求包含双转义序列,并在Web服务器上配置请求筛选以拒绝双转义序列.
我可以通过在web.config中插入以下代码来忽略它:
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
现在我有两个问题:
为什么结果HttpUtility.UrlEncode()会导致任何类型的错误.正如我注意到的那样,结果不包含任何网址的非法字符?
据我所知,put <requestFiltering allowDoubleEscaping="true" />不是一个好的解决方案,因为它会在应用程序中创建一个安全漏洞,那么在这种情况下最好的解决方案是什么?
如何通过ajax帖子将包含'%'和'&'等字符的大字符串传递到我的php页面?
换句话说,如何对它们进行javascript编码并对它们进行php解码?
我正在使用带有Razor的EF4 + MVC 3.
我有以下内容ActionResult,它将Dictionary<string,string>部分视图呈现出来.
行动
public ActionResult combotest()
{
Dictionary<string, string> r = new Dictionary<string, string>();
r.Add("<> ''", "T");
...
return PartialView("_mypartial", r);
}
Run Code Online (Sandbox Code Playgroud)
现在,包含在Model.Key值中的特殊字符是HTML编码,而我想将它们用作纯文本.例如<> '',呈现为<> ''.
我试图将它们与转换WebUtility.HtmlDecode或Server.HtmlDecode没有成功:
部分视图(_mypartial):
<select>
<option value=''></option>
@foreach (KeyValuePair<string,string> value in (Dictionary<string, string>)Model)
{
<option value="@WebUtility.HtmlDecode(value.Key)">@value.Value
</option>
}
</select>
Run Code Online (Sandbox Code Playgroud)
你可以帮帮我吗?String.Replace如果可能的话,我会避免使用.