请考虑以下代码段:
Eshell V5.9.1 (abort with ^G)
1> A="Pamet".
"Pamet"
2> A1="Pam??".
[80,97,109,283,357]
Run Code Online (Sandbox Code Playgroud)
("Paměť"是捷克语中的"记忆".我之所以选择它,是因为它包含了Erlang认为"不可打印"的两个字符.)IIRC Erlang,起源于瑞典,假设如果拉丁语中不存在一个字符1 ,它是不可打印的.因此,即使我在一个现代的Linux机器上运行shell,其中一切都是UTF-8,它输出一个整数列表而不是"Paměť".
我的问题:如何将UTF-8字符串写入屏幕,使其显示为字符串,而不是整数列表?
在编写一个接受来自用户的tsrange文字的程序的过程中,然后将其插入到各种SQL查询中,今天我正在测试一些tsrange,看看它们是如何被PostgreSQL 9.3.5解释的.
特别是这个行为奇怪:'( - 无限,今天)':: tsrange
lower_inf函数表示下限不是无限的(!)
test=> SELECT lower_inf('(-infinity,today)'::tsrange);
lower_inf
-----------
f
(1 row)
Run Code Online (Sandbox Code Playgroud)
然而PostgreSQL报告说这个tsrange包含一个时间戳,如'1000-01-01 BC'...
test=> SELECT '(-infinity,today)'::tsrange @> '1000-01-01 BC'::timestamp;
?column?
----------
t
(1 row)
Run Code Online (Sandbox Code Playgroud)
任何人都可以阐明这一点吗?