我知道非标准的%uxxxx方案,但这似乎不是明智的选择,因为该方案已被W3C拒绝.
一些有趣的例子:
心中的人物.如果我在浏览器中输入:
http://www.google.com/search?q=?
Run Code Online (Sandbox Code Playgroud)
然后复制并粘贴它,我看到这个URL
http://www.google.com/search?q=%E2%99%A5
Run Code Online (Sandbox Code Playgroud)
这使得它看起来像Firefox(或Safari)正在这样做.
urllib.quote_plus(x.encode("latin-1"))
'%E2%99%A5'
Run Code Online (Sandbox Code Playgroud)
这是有道理的,除了不能用Latin-1编码的东西,比如三点字符.
…
Run Code Online (Sandbox Code Playgroud)
如果我输入URL
http://www.google.com/search?q=…
Run Code Online (Sandbox Code Playgroud)
进入我的浏览器然后复制粘贴,我明白了
http://www.google.com/search?q=%E2%80%A6
Run Code Online (Sandbox Code Playgroud)
背部.这似乎是做的结果
urllib.quote_plus(x.encode("utf-8"))
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为...不能用Latin-1编码.
但后来我不清楚浏览器是如何用UTF-8或Latin-1解码的.
因为这似乎含糊不清:
In [67]: u"…".encode('utf-8').decode('latin-1')
Out[67]: u'\xc3\xa2\xc2\x80\xc2\xa6'
Run Code Online (Sandbox Code Playgroud)
有效,所以我不知道浏览器是如何用UTF-8或Latin-1解码的.
使用我需要处理的特殊字符做什么是正确的?
我正在尝试编写一个正则表达式,它将获取最后一个':'及其后的所有内容.这是我在C#中的正则表达式:
Regex rx5 = new Regex(@"[A-Za-z.][^\s][^:]{1,}$",RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)
它的工作原理除了它包含':'.我怎么才能在':'之后得到所有内容而不包括':'?
我有一个iPhone应用程序,其中许多域对象都填充了用户输入的数据.为了在中断后恢复状态,这些对象实现NSCoding协议并在applicationWillTerminate消息中写入磁盘(Documents目录).然后,当再次启动应用程序时,将加载数据字节并重新填充域对象.获取文件目录的代码如下:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
这在模拟器中运行得很好,但是一旦我将应用程序部署到iPhone,它就停止了工作.iPhone错误代码513的原因 - 显然意味着"许可被拒绝".iPhone开发文档中有一个说明可以解释一下 -
在设备上,返回的路径(documentsDirectory)类似于以下内容:/ var/mobile/Applications/30B51836-D2DD-43AA-BCB4-9D4DADFED6A2/Documents
但是,在模拟器上,返回的路径采用以下形式:
/ Volumes/Stuff/Users/johnDoe/Library/Application Support/iPhone Simulator/User/Applications/118086A0-FAAF-4CD4-9A0F-CD5E8D287270/Documents
这是我所看到的确切行为.我不确定这是如何与获得权限被拒绝的错误以及我可以做些什么来解决它.它确实如下 -
要读取和写入用户首选项,请使用NSUserDefaults类或CFPreferences API.这些接口使您无需构建Library/Preferences /目录的路径并直接读取和写入首选项文件.有关使用这些界面的更多信息,请参阅"添加设置包".
如果应用程序包含应用程序包中的声音,图像或其他资源,则应使用NSBundle类或CFBundle opaque类型来加载这些资源.捆绑包具有资源在应用程序内部的固有知识.此外,捆绑包可以识别用户的语言首选项,并且能够自动选择默认资源上的本地化资源.有关bundle的更多信息,请参阅"应用程序包".
我不知道如何使用Application Bundle来加载数据字节.有什么帮助或例子吗?
有没有一种在Windows/Linux/OS X上运行Python脚本的简单方法?
在后两个,subprocess.Popen("/the/script.py")工作,但在Windows上我得到以下错误:
Traceback (most recent call last):
File "test_functional.py", line 91, in test_functional
log = tvnamerifiy(tmp)
File "test_functional.py", line 49, in tvnamerifiy
stdout = PIPE
File "C:\Python26\lib\subprocess.py", line 595, in __init__
errread, errwrite)
File "C:\Python26\lib\subprocess.py", line 804, in _execute_child
startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)
monkut的评论:用例不明确.为什么要使用subprocess来运行python脚本?是否有什么东西阻止您导入脚本并调用必要的功能?
我正在编写一个快速脚本来测试Python命令行工具的整体功能(在各种平台上测试它).基本上它必须在临时文件夹中创建一堆文件,在此上运行脚本并检查文件是否已正确重命名.
我本可以导入脚本并调用函数,但由于它依赖sys.argv并使用sys.exit(),我本来需要做类似的事情.
import sys
import tvnamer
sys.argv.append("-b", "/the/folder")
try:
tvnamer.main()
except BaseException, errormsg:
print type(errormsg)
Run Code Online (Sandbox Code Playgroud)
另外,我想捕获stdout和stderr以便调试出错的地方.
当然更好的方法是以更可单元测试的方式编写脚本,但脚本基本上是"完成",我在做一个"1.0"版本之前做了最后一批测试(之后我会去进行重写/重组,这将更加整洁,更加可测试
基本上,在找到sys.executable变量之后,简单地将脚本作为进程运行要容易得多.我会把它写成一个shell脚本,但这不会是跨平台的.最终的脚本可以在 …
有没有人知道如何更改StyleCop规则SA1600,说明必须记录元素,以便它只适用于属性而不适用于私有成员?
我们的ORM(DevExpress XPO)要求您拥有所有公共属性的私有成员(因为您必须在setter中调用一个函数来保存它并将其存储在私有成员中),并对公共属性和私有属性进行注释.考虑到一些表有超过50个字段,同样的事情的成员正在杀了我.
如何连接两个tcpdump文件,以便一个流量将在文件中出现?具体来说,我想"加倍"一个tcpdump文件,以便所有会话将一个接一个地重复顺序几次.
我在这里看到了很多关于复制保护的讨论.我对防逆转和知识产权保护更感兴趣.
Safenet和HASP等解决方案声称要对二进制文件进行加密,但是当与有效密钥一起使用时,它们是否会受到保护而不会被反转?
可以使用哪些策略来混淆代码并抛弃反向器?那里有没有像样的商业实施?
我知道大多数保护方案都可以被破解,但这里的目标是延迟逆转所讨论软件的能力,如果另一家公司试图实施这些方法,那就更加明显.
我想知道如何定义不变性?如果这些值没有公开,那么无法修改,那就够了吗?
是否可以在类型内修改值,而不是类型的客户?
或者只能在构造函数中设置它们?如果是这样,在双初始化的情况下(this在结构上使用关键字等)对于不可变类型仍然可以吗?
我怎样才能保证类型是100%不可变的?
我无法从RFC 2616告诉HTTP客户端是否应该接受包含Content-Length:0或Transfer-Encoding:chunked头的204 No Content响应.这些标题似乎打破了一些HTTP客户端和代理,这显然试图读取空响应体,但规范如下:
- 任何"绝不"包含消息体的响应消息(例如1xx,204和304响应以及对HEAD请求的任何响应)始终由头字段之后的第一个空行终止,而不管实体是什么 - 邮件中存在标题字段.
对我而言,"无论实体标题字段如何"都意味着客户应该容忍这种状况.在二郎HTTP库选择了这个解释.但是,lighthttpd和IBM选择了相反的解释 - 服务器不应该包含这些标题用于禁止拥有主体的响应.
那么,Web应用程序是否应该从响应中删除这些标头,或者网络基础结构和客户端是否应该容忍204 No Content,304 Not Modified等上的标头?
我想知道是否可以与我的程序中的其他程序进行交互.例如,单击另一个程序等上的按钮等.我不确定这是否可能,但如果有人可以在C#中提供一些示例代码.
谢谢
c# ×3
networking ×2
windows ×2
.net ×1
c++ ×1
cocoa-touch ×1
http ×1
immutability ×1
interaction ×1
iphone ×1
obfuscation ×1
pcap ×1
python ×1
regex ×1
rfc2616 ×1
stylecop ×1
subprocess ×1
tcp ×1
tcpdump ×1
unicode ×1
urlencode ×1
utf-8 ×1
winapi ×1
wireshark ×1