如果我接受完整的Unicode密码,我应该如何在将字符串传递给哈希函数之前对其进行规范化?
如果没有规范化,如果有人ma\u00F1ana在一台计算机上将其密码设置为"mañana"()并尝试使用ma\u006E\u0303ana另一台计算机上的"mañana"()登录,则哈希将不同,登录将失败.这受用户代理或其操作系统的控制.
Unicode规范化形式:http://unicode.org/reports/tr15/#Norm_Forms
"o?ce" == "office".passwords unicode password-storage unicode-normalization homoglyph
假设我有一个像这样的SPARQL查询,寻找具有焦点资源的一些共享属性的资源,并且还获得关于焦点资源的一些其他陈述:
CONSTRUCT {
?focal pred:icate ?shared .
?other pred:icate ?shared .
}
WHERE {
?focal pred:icate ?shared ;
more:info ?etc ;
a "foobar" .
?other pred:icate ?shared .
}
LIMIT 500
Run Code Online (Sandbox Code Playgroud)
如果有超过500个其他资源,LIMIT可能会排除该more:info语句和对象.那么,有没有办法说"我只想要最多500个?other",或者我是否必须将此查询分成多个部分?
我需要一个Linux文本编辑器来取代Textpad 4.7.3(一个Windows nagware应用程序),但我尝试过的所有替代品都是膨胀或不完整的.以下是我发现最重要的功能,按降序排列:
这是我在编辑中发现的令人厌恶的事情:
我没有时间或具备建立我的"理想编辑器"所需的具体知识,所以我希望那些在编辑中具有同样品味的人可能偶然发现了一个宝石.
ETA:请不要推荐您未亲自使用的编辑器.我听说过SciTE,Eclipse,gedit,medit,nedit,GVim,Gemacs,Kate,Geany,Gnotepad,ozeditor等等.我敢肯定他们中的大多数都有我提到的一些功能.如果您不确定它是否具有基本功能(例如ctrl-tab的工作方式与alt-tab相同),那么您实际上并没有帮助,是吗?
我正在编写一段需要向非ASCII名称用户发送邮件的Java代码.我已经弄清楚如何使用UTF-8作为正文,主题行和通用标题,但我仍然坚持收件人.
这是我在"To:"字段中想要的内容:"????????????" <foo@example.com>.它(在我们今天的目的)生活在一个名为String的字符串中recip.
msg.addRecipients(MimeMessage.RecipientType.TO, recip) 给 "?????S]" <foo@example.com>msg.addHeader("To", MimeUtility.encodeText(recip, "utf-8", "B")) 投 AddressException: Local address contains control or whitespace in string ``=?utf-8?B?IuOCpuOCo+OCreODmuODh+OCo+OCouOBq+OCiOOBhuOBk+OBnSIgPA==?= =?utf-8?B?Zm9vQGV4YW1wbGUuY29tPg==?=''我该怎么发送这条消息呢?
这是我处理其他组件的方式:
msg.setText(body, "UTF-8", "html");msg.addHeader(name, MimeUtility.encodeText(value, "utf-8", "B"));msg.setSubject(subject, "utf-8");我有一个可以从远程服务器发出响应的observable.我订阅了一个将结果填入缓存的操作.
奖励:这是一个clojure实验,展示了在订阅者的情况下观察到的可观察性,或者它可能只显示了订阅可观察者的副作用.
(ns adhoc.rx-gc
"Testing behavior of RxJava and garbage collection."
(:require [rx.lang.clojure.core :as rx])
(:import (java.lang.ref WeakReference)
(java.util.concurrent TimeUnit)
(rx Observable)))
(defn test-gc
[sub?]
;; Hold source in an atom to be sure we can wipe references to it
;; and not worry about lexical scope.
(let [a-src (atom (.delay (rx/return "hello") 5 TimeUnit/SECONDS))
w-src (WeakReference. @a-src)]
(when sub?
(rx/subscribe @a-src
#(do (println "Value:" %)
(println "On-update ref:" (.get w-src)))))
(reset! a-src nil)
(System/gc)
(println "After-gc ref:" …Run Code Online (Sandbox Code Playgroud)