想要强制下载资源而不是直接在Web浏览器中呈现资源的Web应用程序Content-Disposition在表单的HTTP响应中发出标头:
Content-Disposition: attachment; filename=FILENAME
该filename参数可用于建议浏览器下载资源的文件的名称.但是,RFC 2183(Content-Disposition)在2.3节(文件名参数)中指出文件名只能使用US-ASCII字符:
当前[RFC 2045]语法将参数值(以及因此内容处理文件名)限制为US-ASCII.我们认识到允许在文件名中使用任意字符集的巨大愿望,但是定义必要的机制超出了本文档的范围.
然而,有经验证据表明,当今大多数流行的Web浏览器似乎都允许非US-ASCII字符(缺乏标准)对编码方案和文件名的字符集规范不同意.问题是,如果文件名"naïvefile"(没有引号,第三个字母是U + 00EF)需要编码到Content-Disposition标题中,那么流行浏览器采用的各种方案和编码是什么?
出于这个问题的目的,流行的浏览器是:
我发现你可以用C#中的'@'字符开始你的变量名.在我的C#项目中,我使用的是用Java编写的Web服务(我添加了对我的项目的Web引用).WSDL中定义的一个接口对象有一个名为"params"的成员变量.显然,这是C#中的保留字,因此您不能拥有名为"params"的成员变量的类.生成的代理对象包含一个如下所示的属性:
public ArrayList @params {
get { return this.paramsField; }
set { this.paramsField = value; }
}
Run Code Online (Sandbox Code Playgroud)
我搜索了VS 2008 c#文档,但找不到任何相关信息.搜索谷歌也没有给我任何有用的答案.那么变量/属性名称中'@'字符的确切含义或用法是什么?
示例:以下代码是否对JSON规范有效?
{
precision: "zip"
}
Run Code Online (Sandbox Code Playgroud)
或者我应该总是使用以下语法?(如果是这样,为什么?)
{
"precision": "zip"
}
Run Code Online (Sandbox Code Playgroud)
我在JSON规范中没有真正发现这个问题.虽然他们在示例中使用了键周围的引号.
据我所知,private是默认无处不在C#中(也就是说,如果我不写public,protected,internal等这将是private默认情况下).(如果我错了,请纠正我.)
那么,编写该关键字的原因是什么,或者为什么它甚至存在于成员中?
例如,当自动生成事件处理程序时,它看起来像这样:
private void RatTrap_MouseEnter(object sender, CheeseEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
但是,如果暗示和默认,为什么它甚至写私人?只是为了让新手开发人员(不知道它是C#默认值)知道它是私有的吗?或者编译器有区别吗?
此外,是否存在写"私人"(单独)会改变会员的可访问性的情况?
我有一个枚举SOME_ENUM:
public enum SOME_ENUM {
EN_ONE,
EN_TWO,
EN_THREE;
}
Run Code Online (Sandbox Code Playgroud)
将SOME_ENUM.values()始终按枚举声明的顺序返回枚举:
EN_ONE, EN_TWO, EN_THREE?它是一个规则还是不保证在下一个JDK版本中不会被更改?
看来,当你在Java中输入一个数字时,编译器会自动将它读作一个整数,这就是为什么当你输入(long)6000000000(不在整数范围内)时,它会抱怨它6000000000不是一个整数.要纠正这个问题,我必须指明6000000000L.我刚刚了解了这个规范.
还有其他数字规格,如short,byte,float,double?这似乎是好事,因为(我假设),如果你可以指定你输入的数字是短的,那么java就不必抛出它 - 这是一个假设,如果我错了,请纠正我.我通常会自己搜索这个问题,但我不知道甚至会调用这种数字规范.
我一直在谷歌搜索来回阅读RFC和SO试图解决这个问题,但我仍然没有得到杰克.
所以我想我们只是投票给"最好的"答案就是这样,或者?
基本上它归结为这个.
3.4.查询组件
查询组件是要由资源解释的信息字符串.
query = *uric在查询组件中,保留字符";","/","?",":","@","&","=","+",","和"$".
让我感到困惑的第一件事就是*uric就是这样定义的
uric = reserved | unreserved | escaped
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
然而,有些段落澄清了这一点
上面的"保留"语法类指的是URI中允许的那些字符,但在通用URI语法的特定组件中可能不允许这些字符; 它们用作第3节中描述的组件的分隔符.
"保留"集中的字符不会在所有上下文中保留.实际上在任何给定URI组件中保留的字符集由该组件定义.通常,如果URI的语义在其转义为US-ASCII编码时被替换,则保留字符.
最后一段摘录感觉有些倒退,但它清楚地说明保留的字符集取决于上下文.然而,3.4声明所有保留字符都在查询组件中保留,但是,这里唯一会改变语义的是逃避问号(?),因为URI没有定义查询字符串的概念.
在这一点上,我完全放弃了RFC,但发现RFC 1738特别有趣.
HTTP URL采用以下形式:
http://<host>:<port>/<path>?<searchpart>在<path>和<searchpart>组件中,"/",";","?" 保留.可以在HTTP内使用"/"字符来指定分层结构.
我至少对RFC 1738取代RFC 2396的HTTP URL进行了解释.因为URI查询没有查询字符串的概念,所以对reserved的解释实际上并不允许我定义查询字符串,因为我习惯了现在做.
当我想将一个数字列表与另一个资源的请求一起传递时,这一切都开始了.我没有想太多,只是将它作为逗号分隔值传递给它.令我惊讶的是,逗号被逃脱了.page.html?q=1,2,3编码的查询变成了page.html?q=1%2C2%2C3它可以工作,但它很难看,并没有想到它.那是我开始浏览RFC的时候.
我的第一个问题很简单,编码逗号是否真的有必要?
根据RFC 2396,我的答案是:是的,根据RFC 1738:没有
后来我找到了有关请求之间传递列表的相关帖子.csv方法被认为是坏的.这显示出来了(之前没见过).
page.html?q=1;q=2;q=3
Run Code Online (Sandbox Code Playgroud)
我的第二个问题,这是一个有效的URL吗?
根据RFC 2396,我的回答是:不,根据RFC 1738:否(;保留)
我没有任何关于传递csv的问题,只要它的数字,但是你确实遇到了如果其他东西突然需要逗号来回来回编码和解码值的风险.无论如何,我尝试使用ASP.NET的分号查询字符串,结果不是我所期望的.
Default.aspx?a=1;a=2&b=1&a=3
Request.QueryString["a"] = "1;a=2,3"
Request.QueryString["b"] = "1"
Run Code Online (Sandbox Code Playgroud)
我没有看到这与csv方法有很大不同,因为当我要求"a"时,我得到一个带逗号的字符串.ASP.NET肯定不是一个参考实现,但它还没有让我失望. …
(不要与流行的.Net单元测试库Xunit混淆.)
今天厌倦了我开始检查Gmails DOM(是的,我非常无聊).
一切都看起来很简单,直到我注意到某些元素宽度的有趣规范.杰出的Googlites使用罕见的'ex'单位指定了许多表格.
width: 22ex;
Run Code Online (Sandbox Code Playgroud)
起初我很难过("什么是'前'?"),然后它回到了我身上:我似乎记得几年前我第一次学习CSS时的一些东西.从CSS3规范:
[ ex单位 ]等于第一个可用字体的使用x高度.所谓的x高度是因为它通常等于小写"x"的高度.但是,即使对于不包含"x"的字体,也会定义"ex".
好,好.但我以前从未真正看过它(更不用说我自己了).我非常普遍使用ems,并欣赏它们的价值,但为什么是"ex"?它似乎远不如em那么标准,也没那么有用.
我发现讨论这个主题的几个页面之一是Stephen Poley的http://www.xs4all.nl/~sbpoley/webmatters/emex.html.斯蒂芬提出了很好的观点,然而,他的讨论对我来说似乎没有定论.
所以我的问题是:'ex'单元给网页设计带来了什么价值?
(这个问题可能被标记为主观,但我会将这个决定留给比我更有经验的SO'ers.)
在HTML属性名称=值对中,"名称"部分允许的字符是什么?.....看一些常见的属性,似乎只使用字母(az和AZ),但也可以允许其他字符?...可能是数字(0-9),连字符( - )和句点(.)...有什么规格吗?
给出以下函数调用C:
fooFunc( barFunc(), bazFunc() );
Run Code Online (Sandbox Code Playgroud)
执行的顺序barFunc和BazFunc未指定,因此barFunc()可以在in 之前bazFunc()或bazFunc()之前调用.barFunc()C
并Java指定函数参数表达式执行顺序或喜欢的C是不确定?
specifications ×10
java ×3
c# ×2
browser ×1
css ×1
enums ×1
html ×1
http-headers ×1
jls ×1
json ×1
long-integer ×1
name-value ×1
naming ×1
numbers ×1
private ×1
query-string ×1
short ×1
uri ×1
url ×1