小编Get*_*ree的帖子

如何在python中捕获所有旧式类异常?

在代码中有不同的旧式类,如下所示:

class customException: pass
Run Code Online (Sandbox Code Playgroud)

以这种方式提出异常:

raise customException()
Run Code Online (Sandbox Code Playgroud)

是否有一种类型可以捕获所有那些旧式的类异常?像这样:

try:
    ...
except EXCEPTION_TYPE as e:
    #do something with e
Run Code Online (Sandbox Code Playgroud)

或者至少有一种方法可以捕获所有内容(旧式和新式)并在变量中获取异常对象?

try:
    ...
except:
    #this catches everything but there is no exception variable 
Run Code Online (Sandbox Code Playgroud)

python exception-handling python-2.x

6
推荐指数
1
解决办法
239
查看次数

使用ICU库将UTF-8转换为ASCII

我有一个带有UTF-8字符的std :: string。
我想将字符串转换为最接近的ASCII字符。

例如:

?ód?=>罗兹(
LodzAssunção)=>阿松松(
AssuncaoSchloß)=>城堡(Schloss)

不幸的是,ICU库真的很不直观,我还没有找到有关其用法的好的文档,因此花太多时间来学习使用它。我没有时间。

有人可以举个例子说明如何做到这一点吗?
谢谢。

c++ unicode utf-8 transliteration

5
推荐指数
1
解决办法
5490
查看次数

便携式共享对象?

是否可以像Windows中的DLL一样以可移植的方式使用共享对象文件?

我想知道是否有一种方法可以为Linux提供一个可以使用的编译库.以同样的方式,您可以在Windows中编译DLL,它可以在任何其他Windows上使用(好吧,不是任何其他Windows,但在大多数情况下它可以).

这可能在Linux中吗?

编辑:
我刚刚醒来并阅读答案.有一些非常好的.
我不是想隐藏源代码.我只是想提供一个已经编译并且可以使用的库,因此没有编译经验的用户不需要自己动手.
因此,我们的想法是提供一个可以在尽可能多的不同Linux上运行的.so文件.
该库是用C++编写的,使用STL和Boost库.

c++ linux portability shared-libraries shared-objects

5
推荐指数
1
解决办法
2295
查看次数

在 PHP 中检测正确的字符编码?

我正在尝试检测字符串的字符编码,但无法获得正确的结果。
例如:

$str = "€ ‚ ƒ „ …" ;
$str = mb_convert_encoding($str, 'Windows-1252' ,'HTML-ENTITIES') ;
// Now $str should be a Windows-1252-encoded string.
// Let's detect its encoding:
echo mb_detect_encoding($str,'Windows-1252, ISO-8859-1, UTF-8') ;
Run Code Online (Sandbox Code Playgroud)

该代码输出ISO-8859-1但它应该是Windows-1252.

这有什么问题?

编辑:
更新示例,以响应@raina77ow。

$str = "€‚ƒ„…" ; // no white-spaces
$str = mb_convert_encoding($str, 'Windows-1252' ,'HTML-ENTITIES') ;
$str = "Hello $str" ; // let's add some ascii characters
echo mb_detect_encoding($str,'Windows-1252, ISO-8859-1, UTF-8') ;
Run Code Online (Sandbox Code Playgroud)

我再次得到错误的结果。

php character-encoding detection multibyte

5
推荐指数
1
解决办法
3243
查看次数

手动调整元素大小不会触发Chrome中的变异观察者

我有一个DIV风格resize: both,然后我设置一个MutationObserver侦听属性的变化.

mutObs = new MutationObserver(function () {
    console.log('Hello');
});

elem = document.getElementById('aDiv');
mutObs.observe(elem, {
    attributes: true
});

elem.style.width = '300px'; //this fires the observer callback as expected
Run Code Online (Sandbox Code Playgroud)

我做了一个小提琴:http://jsfiddle.net/2NQQu/2/

在Chrome(我测试过Chrome 31)中,DIV使用鼠标调整大小时不会触发回调.在Firefox中它工作正常.

这种行为是故意的和/或标准的吗?这是一个错误吗?

html javascript resize google-chrome mutation-observers

5
推荐指数
1
解决办法
2064
查看次数

Werkzeug的反应太慢了

我有以下Werkzeug应用程序将文件返回给客户端:

from werkzeug.wrappers import Request, Response

@Request.application
def application(request):    
    fileObj = file(r'C:\test.pdf','rb')
    response = Response( response=fileObj.read() )
    response.headers['content-type'] = 'application/pdf'
    return response
Run Code Online (Sandbox Code Playgroud)

我要关注的部分是这一部分:

response = Response( response=fileObj.read() )
Run Code Online (Sandbox Code Playgroud)

在这种情况下,响应大约需要500毫秒(C:\test.pdf是一个4 MB的文件.Web服务器在我的本地机器上).

但是,如果我重写这一行:

response = Response()
response.response = fileObj
Run Code Online (Sandbox Code Playgroud)

现在响应大约需要1500毫秒.(慢3倍)

如果这样写:

response = Response()
response.response = fileObj.read()
Run Code Online (Sandbox Code Playgroud)

现在响应大约需要80秒(这是正确的,80 SECONDS).

为什么3种方法之间存在很大差异?
为什么第三种方法太慢?

python apache mod-wsgi httpresponse werkzeug

4
推荐指数
1
解决办法
1513
查看次数

内联事件处理程序内部的神秘变量"URL"

在下面的代码中,当您单击此处时,您会在警告对话框中看到什么?

<script>
URL = 'hello' ;
document.write(URL) ;
</script>
<div onclick="alert(URL)">click here</div>
Run Code Online (Sandbox Code Playgroud)

小提琴

我很确定答案是"你好",我甚至不在乎尝试.
但我实际看到的是当前页面的网址(在Chrome,Firefox和IE9上测试过).

为什么URL在内联事件处理程序中定义了这个变量?
为什么它优先于我自己的变量?
我在哪里可以找到有关此行为的文档?


跟进

这是否只发生在内联事件处理程序中?
这样的动机是什么动机?


后续行动2

我在旧浏览器上做了更多测试,这种行为似乎是远古时代的痕迹.我在以下浏览器上验证了它:

  • Mozilla 1.0.1
  • Firefox 2.0.0.6
  • IExplorer 6.0
  • Nestscape 8.1.2
  • Opera 9.02

这意味着这个URL变量肯定不是实验window.URL函数/构造函数.它是一个字符串,它只存在于内联事件处理程序中.

html javascript

4
推荐指数
1
解决办法
77
查看次数

如何在磁盘上手动编辑/重置Chrome DevTools设置?

在Chrome 44中,有一个新的DevTools实验,称为“材料设计”(您必须启用DevTools实验,然后进行6次shift印刷)。

启用该实验后,DevTools将不再打开。我尝试了各种启动方式(包括chrome://inspect),但均无济于事。
它确实打开了,因为我可以在其中看到DevTools URLchrome://inspect/#other

但是该面板没有显示。

因此,我无法通过用户界面禁用该特定实验。
可以做的是使用禁用所有DevTools实验chrome://flags/#enable-devtools-experiments,然后DevTools再次正常工作。但是后来我没有办法启用我想要的其他实验。

有没有办法手动编辑某些文件中的DevTools设置?

windows settings google-chrome google-chrome-devtools

4
推荐指数
2
解决办法
6261
查看次数

为什么不能一步读取未对齐的单词?

鉴于 CPU 的字长允许它寻址内存中的每个字节。
鉴于通过PAE CPU 甚至可以使用比其字长更多的位进行寻址。

CPU无法一步读取未对齐的字是什么原因?

例如,在 32 位机器中,您可以读取从位置 0 开始的 4 字节块,但不能读取从位置 1 开始的块(可以,但需要几个步骤)。
为什么CPU不能这样做?

hardware cpu-architecture memory-alignment memory-address address-bus

3
推荐指数
1
解决办法
310
查看次数

std::仅可移动 lambda 的向量,可能吗?

我想要一个 lambda 集合,并要求 lambda 不能被复制,只能移动。
这是因为ambas可能需要移动捕获一些不可复制构造的参数。

例子:

NonCopyableType varName ;
auto func = [a=move(varName)](){ ... } ; //varName is move-captured
Run Code Online (Sandbox Code Playgroud)

之后我想存储func在 a 中vector,但我无法使用该std::function类型,因为它要求 lambda 是可复制的。

vector<function<void()>> list ;
list.push_back(func) ; //won't work
Run Code Online (Sandbox Code Playgroud)

是否可以通过其他方式做到这一点?

c++ lambda move-semantics c++14

3
推荐指数
1
解决办法
447
查看次数