小编Mic*_*las的帖子

如何为PostgreSQL设置千位分隔符?

我想使用千位分隔符格式化长数字.它可以使用to_char函数完成,如:

SELECT TO_CHAR(76543210.98, '999G999G990D00')
Run Code Online (Sandbox Code Playgroud)

但是当我使用UTF-8编码的PostgreSQL服务器在波兰语版本的Windows上时,SELECT结束于:

ERROR:  invalid byte sequence for encoding "UTF8": 0xa0
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
Run Code Online (Sandbox Code Playgroud)

to_char模式G中描述为:组分隔符(使用区域设置).当服务器在具有波兰语语言环境的Linux上运行时,此SELECT可以正常运行.

作为一种解决方法,我使用空格而不是G格式字符串,但我认为应该像在Oracle中一样设置千位分隔符:

ALTER SESSION SET NLS_NUMERIC_CHARACTERS=', ';
Run Code Online (Sandbox Code Playgroud)

这样的设置是否适用于PostgreSQL?

postgresql formatting locale

15
推荐指数
2
解决办法
2万
查看次数

如何使用iText和Flying Saucer在HTML中创建PDF格式的字体?

我将波兰字体嵌入到从HTML转换的PDF中时遇到问题.

我的HTML代码在正文中有样式:

<BODY style="font-family: Tahoma, Arial, sans-serif;font-size : 8pt;">
Run Code Online (Sandbox Code Playgroud)

我尝试了两种将这种HTML转换为PDF的方法:

  • 与htmlcleaner的FOP
  • iText与飞碟

对于FOP,我可以将所有使用过的字体添加到其配置文件中,然后创建PDF,嵌入这些字体(如果字体用于HTML).在生成的PDF中,我在Identity-H编码中使用了Tahoma字体.它看起来不错 - 所有波兰语字母都按预期显示.

然后我尝试用iText进行这样的转换:看起来比较简单,因为我不需要为每个HTML创建转换.不幸的是,我不知道如何将使用过的字体嵌入到生成的PDF中.我发现的大多数示例都是从头开始创建PDF,我不知道如何将这些方法应用于Flying Saucer ITextRenderer或转换中使用的其他对象.

我当前的代码尝试PDFCreationListener.preOpen()通过获取ITextFontResolver和添加字体来添加字体fs.addFont(path, true);.但我创建的所有.pdf都没有我想要的字体.

第二个问题是结果PDF没有波兰语字母.飞碟或iText有问题吗?Acrobat显示创建的PDF文档使用带Ansi编码的Helvetica和ArialMT作为字体.我认为这个Ansi编码不好.如何设置波兰语编码(Identity-H)?

html pdf itext flying-saucer apache-fop

13
推荐指数
3
解决办法
2万
查看次数

哪个DVCS最适合Subversion存储库

当我们访问中央存储库时,Subversion工作得很好,但有时两个或多个开发人员在客户端工作,他们没有连接到中央存储库.我正在寻找可以帮助我们离线的DVCS.

这应该:

  • 与Subversion存储库合作,以便开发人员可以在离开前签出,在离线时本地提交,并在返回时提交到中央存储库
  • 在离线工作的开发人员之间轻松交换
  • 适用于Windows,GUI首选; 开发人员习惯于TortoiseSVN

有人使用Bazaar,Mercurial,git或其他东西,可以展示它的优势和陷阱吗?到目前为止,我开始(真的回到)用Tortoise Bazaar测试Bazaar.

svn git mercurial dvcs bazaar

8
推荐指数
1
解决办法
514
查看次数

Delphi 2009和Informix dbExpress与Windows 2003

我有一个简单的应用程序,它使用dbExpress连接Informix数据库.如果我用TurboDelphi编译它,它适用于WinXP和Win2003.

当我使用新的Deplhi 2009时,我的应用程序在WinXP上工作正常,但不能在Win2003上启动.没有MessageBox有错误,只有EventLog中的信息:

故障应用程序inf_dbexpress_test.exe,版本0.0.0.0,故障模块kernel32.dll,版本5.2.3790.4062,故障地址0x0000bee7.

我认为这是dbExpress驱动程序的问题,而我用于使用ODBC连接Informix的德里2009编译的其他应用程序适用于Win2003.

任何人都可以测试Delphi 2009的Informix dbExpress驱动程序是否适用于Windows 2003?


谢谢你的帮助,但它不起作用.

至于$INFORMIXDIR:我重新安装了ClientSDK 3.5,我$INFORMIXDIR现在是:

C:\ Informix的

(是c:\ Program Files ...).

我可以从我的使用ODBC的应用程序连接到数据库.但是,即使在WinXP兼容模式下,dbExpress应用程序也无法启动.


我在Delphi Quality Central中报告了它作为bug#67823:

delphi informix dbexpress delphi-2009

7
推荐指数
1
解决办法
1784
查看次数

如何使用新的Bouncy Castle库从PKCS10CertificationRequest获取PublicKey?

在新版本的Bouncy Castle库中有一些变化PKCS10CertificationRequest.在以前的版本中,可以PublicKey使用getPublicKey()方法获得此类请求(请参阅旧文档).

现在这种方法消失了.如何通过此类请求获取PublicKey?有,getSubjectPublicKeyInfo().parsePublicKey()但它返回ASN1Primitive.

我从SPKAC看到NetscapeCertRequest我仍然可以通过调用直接读取PublicKey getPublicKey().

java cryptography bouncycastle

7
推荐指数
2
解决办法
7152
查看次数

如何为Jetty SSL设置密码套件的顺序?

为了服务我的应用程序,我使用Apache或嵌入式Jetty.对于Jetty,我选择了一些我想要使用的密码套装并使用它进行设置setIncludeCipherSuites(String[] names).在Jetty文档(http://wiki.eclipse.org/Jetty/Howto/CipherSuites)上,我发现:请注意,您必须按优先顺序指定密码套件.

https://www.ssllabs.com/ssltest/的 SSL 报告指出:

Cipher Suites (sorted by strength; the server has no preference)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)    ECDH 571 bits (eq. 15360 bits RSA)   FS   128
(3 other suites I use)
Run Code Online (Sandbox Code Playgroud)

对于Apache,我得到了:

Cipher Suites (SSL 3+ suites in server-preferred order, then SSL 2 suites where used)
Run Code Online (Sandbox Code Playgroud)

似乎对我设置项目的Jetty顺序setIncludeCipherSuites()没有任何意义.有没有办法设置首选密码套件的顺序?

java ssl jetty

7
推荐指数
1
解决办法
2099
查看次数

如何在Oracle中以普通用户身份运行dbms_crypto函数?

dbms_crypto.hash()在Oracle中使用函数时遇到问题.

我使用sqlplus作为"sys/passwd as sysdba"连接到数据库服务器,然后我安装了dbms_crypto包:

@/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/dbmsobtk.sql
@/home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/prvtobtk.plb
Grant execute on dbms_crypto to public;
Grant execute on dbms_sqlhash to public;
Grant execute on dbms_obfuscation_toolkit to public;
Grant execute on dbms_obfuscation_toolkit_ffi to public;
Grant execute on dbms_crypto_ffi to public;
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错,所以我测试了hash()功能:

SQL> select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual;

DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('ZORG'),3)
--------------------------------------------------------------------------------
60C440F9954CA4744204CDA9CC93567059C1EC82
Run Code Online (Sandbox Code Playgroud)

我作为普通用户断开并连接到该数据库,但后来我收到错误:

SQL> select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual;
select dbms_crypto.hash(utl_raw.cast_to_raw('zorg'), 3) from dual
             *
ERROR at line 1:
ORA-06521: PL/SQL: Error mapping function
ORA-06512: at "MN.DBMS_CRYPTO_FFI", line 131
ORA-06512: …
Run Code Online (Sandbox Code Playgroud)

database oracle cryptography

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

Lazarus/FPC上的WM_COMMAND问题

我有MainMenu的表单,我想在用户从菜单中选择一个命令项时拦截.这适用于Delphi:

type
  TForm1 = class(TForm)
    ... // Memo and MainMenu created
  protected
    procedure WMCommand(var Info: TWMCommand); message WM_COMMAND;
  end;


procedure TForm1.WMCommand(var Info: TWMCommand);
begin
  if (Info.ItemID < 10) then
    Memo1.Lines.Add('WMCommand ' + IntToStr(Info.ItemID));
end;
Run Code Online (Sandbox Code Playgroud)

在MainMenu中我添加了一些项目,当我从菜单中选择这些项目时,我的Memo1充满了:

WMCommand 2
WMCommand 3
WMCommand 3
WMCommand 2
WMCommand 5
...
Run Code Online (Sandbox Code Playgroud)

我将此应用程序移植到FPC/Lazarus,但似乎没有调用WM_COMMAND处理程序!当我TForm1.WMCommand在Delphi中设置断点时,Delphi在主表单出现之前停止了很多次.拉扎鲁斯在这个断点上从未停止过.我认为拉撒路的WM_COMMAND已经打破了一些事情,但也许我不知道什么.任何的想法?

我在WinXP上使用Lazarus 0.9.28.2 beta和FPC 2.2.4.

编辑:

使用Winspector我检查了MainMenu生成WM_COMMAND:

WM_COMMAND
    Code: 0
    Control ID: 2
    Control HWND: 0x00000000
    Message Posted
    Time: 09:37:14.0968
Run Code Online (Sandbox Code Playgroud)

我认为在WM_COMMAND消息方法处理中Lazarus/FPC中存在错误并且我报告了它:http://bugs.freepascal.org/view.php?id = 15521

delphi message freepascal lazarus fpc

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

如何使用Python连接到本地MQseries队列?

我是mqseries的新手,我从IBM WebSphere MQ curses开始.有MQ_APPLEMQ_ORANGE队列管理器的例子.使用MQ Explorer将消息发送到本地或远程队列没有问题,但我想从代码中发送此类消息:Python或Java.我试过Python pymqi库,代码如下:

import pymqi

qmgr = pymqi.QueueManager(None)
qmgr.connect('QM_APPLE')

putq = pymqi.Queue(qmgr, 'Q1')
putq.put('Hello from Python!')
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

Traceback (most recent call last):
    File "mq_put.py", line 4, in <module>
        qmgr.connect('QM_APPLE')
    File "c:\Python26\lib\site-packages\pymqi.py", line 758, in connect
        raise MQMIError(rv[1], rv[2])
pymqi.MQMIError: MQI Error. Comp: 2, Reason 2540: FAILED: MQRC_UNKNOWN_CHANNEL_NAME
Run Code Online (Sandbox Code Playgroud)

QM_APPLE队列管理器和Q1本地队列.

我的代码出了什么问题?

python ibm-mq

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

如何用Python gnupg模块验证gnupg签名?

我的Python gnupg模块验证签名有问题.使用此模块,我可以加密和签名文件:

gpg.encrypt_file(stream, encrypt_for, sign=sign_by, passphrase=key_passwd, output=file_out)
Run Code Online (Sandbox Code Playgroud)

这样的加密文件可以通过命令行解密gpg,输出:

gpg: encrypted with 2048-bit ELG-E key, ID 518CD1AD, created 2011-04-14
            "client"
gpg: Signature made 04/14/11 13:36:14 using DSA key ID C7C006DD
gpg: Good signature from "server"
Run Code Online (Sandbox Code Playgroud)

它也可以被Python gnupg模块解密,输出文件有解密内容,但我无法验证签名.解密和验证的代码:

def decrypt_file(file_in, file_out, key_passwd):
    gpg = gnupg.GPG()
    f = open(file_in, "rb")
    data = f.read()
    f.close()
    gpg.decrypt(data, passphrase=key_passwd, output=file_out)
    verified = gpg.verify(data)
    if not verified:
        raise ValueError("Signature could not be verified!")
Run Code Online (Sandbox Code Playgroud)

我得到的例外:

decrypting file...
Exception in thread Thread-12:
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python cryptography gnupg signature

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