童话世界

一大片白色小球,是高尔夫球?

艺术家的灯泡

拉到近处看看,原来是小灯泡

艺术家的灯泡

拉到远处看看,哇塞,这么多。。。

艺术家的灯泡

夜幕降临了,看到效果了吧

艺术家的灯泡

好壮观啊

艺术家的灯泡

像小时候吃的豆豆糖,抓一颗,咬一口,嘎嘣脆。。。

艺术家的灯泡

这张极有童话色彩,远处的光亮像是通往天堂的入口,想起了卖火柴的小姑娘,有空我写一篇《卖豆豆糖的小男孩》,就配这幅图

0007.jpg

下面两个尺寸稍大,看上去像台球,或者是化学教科书里的表示原子的小球,小球之间再连上些小棍,就更有效果了

0008.jpg


0009.jpg

Popularity: 37%

宏伟的,雄壮的,朝气蓬勃的
艰涩的,鬼祟的,凶残邪恶的
他们在斗争

有点沾沾自喜
也许是小人得志
有点郁郁寡欢
也许是无病呻吟

你在疾风骤雨中狂奔
你歇斯底里
你在绵绵情话里融化
你极尽温柔

穿越世纪
从你的心里飞到我的心里

Popularity: 34%

正确设定MySQL中的字符集,解决终端乱码问题

我们经常在telnet终端操作MySQL数据库时会遇到中文乱码问题,这主要是因为字符集设定错误造成的。这里面涉及到好几个地方的字符集设置,如果我们搞清楚它后面的原理,就可以很容易解决这些乱码问题。

在MySQL的客户端上执行一次查询的过程一般是,在客户端的提示符后面输入一条SQL语句,回车,然后终端显示出查询的结果。这个过程中,只有终端和三个MySQL的系统变量指定了正确的字符集,才能保证我们将一个正确的SQL语句送到服务器,然后服务器返回正确的结果,并且在终端正确显示。

三个MySQL的系统变量是:

1. character_set_client,终端字符集,告诉Server客户端提交的SQL语句的编码格式

2. character_set_connection,连接字符集,是服务器翻译SQL语句时用到的编码格式

3. character_set_results,返回的结果集的字符集,是服务器返回结果集之前把结果集转换成的编码格式

在MySQL终端通过执行命令 show variables like ‘char%’ 可以查看这几个变量的值。这三个变量通常都设定为同一种字符集,用命令set names [charset name]就可以修改这三个变量的值。一般来说,只要你设定了能够表示你的数据的字符集,你查询的结果都可以在终端正确显示。比如你在数据库中存入了中文数据,不管存入时使用的什么字符集,你在终端即可以用set names命令设置为utf8,也可以设置为gbk编码,只要你的终端显示的字符集和你的设定一致就可以正确处理中文。

举个例子,使用的表t1是utf8编码,表中的字段c1继承了这个编码,表创建如下

mysql> create table t1 ( c1 text not null ) character set utf8;

用的字符是汉字“范”,gbk编码为B7 B6,utf8编码为E8 8C 83

用下面的SQL语句插入数据

mysql> insert into t1 values( ‘范’);

a)如果终端设置为utf8,并且执行了 set names utf8,那么插入到数据库中的就是“范”这个字的utf8编码,这个过程中MySQL不需要做编码转换。写入数据库的内容可以通过执行 select hex( c1 ) from t1 得到数据的十六进制编码来验证。

b)如果终端设置为 utf8,并且执行了set names gbk,那么执行完这个插入操作后,写入的二进制数据是E9 91 BC,这是“汉字“鑼”的utf8编码。这是因为,终端输入的“范”用的是utf8编码,而服务器以为终端发送过来的内容是gbk编码,所以在向t1表中插入的时候进行了一次gbk到utf8的转换,结果当然是错误的。

c)如果终端设置为gbk,并且执行了set names gbk, 那么执行完插入操作后,写入t1的依然是“范”这个字的utf8编码。插入过程中,终端输入的是“范”的gbk编码B7 B6,服务器被告知终端发过来的SQL语句是gbk编码(由character_set_client指定),所以在插入数据前做了一次gbk到utf8的编码转换。

d)如果终端设置为gbk,并且执行了set names utf8,那么执行完插入操作后,MySQL会报出一个数据被截断的警告。实际上,输入终端的是“范”这个字符的gbk编码B7 B6,而服务器被告知客户端发过来的SQL语句是utf8编码,所以在执行过程中没有做转码,直到插入数据的时候,发现B7 B6不符合utf8的编码规则,给出了警告信息,实际插入的数据是3F 3F,也就是两个问号。

查询的时候是同样的道理,MySQL也是根据set names设定的字符集来对返回给客户端的结果集做相应的编码转换,如果转换的结果和终端显示的字符集一致,就能正确显示,如果不一致就是乱码。

结论是,只要终端的字符集和set names指定的字符集一致就可以让MySQL在处理过程中执行正确的转码并且正确地显示。

另外,如果通过程序操作MySQL数据库, 那么也需要事先执行set names命令来指定程序希望输出的字符集。比如,用程序从一个utf8编码的数据库向另外一个gbk编码的数据库进行数据迁移,在选取源数据库数据之前,需要执行set names gbk,才能取到gbk编码的数据。

Popularity: 25%

爱吃干果的看过来

我爱吃各种干果,但是每次都把壳弄得到处都是。丹麦设计师设计了下面的双层果盘,一层放干果,一层放果壳,可以拿着它到处溜达着吃,也可以躺在床上边看片边吃,真是很人性化的设计,是我们干果爱好者的福音啊,哈哈。

干果虽好,不要贪多哦!!!

双层果盘双层果盘双层果盘

Popularity: 38%

非常喜欢最近雪碧的广告

雪碧最近有一个广告拍得太棒了,主角好像是何洁,不过没顾上看主角,被它的构思完全征服。内容就是几个年轻人在打闹,互相扔东西,什么东西只要扔到身上就变成一片清凉的水。艳阳天下,被这样的“大水包”砸来砸去的感觉爽极了。

记得上学的时候,语文课上学到《老残游记》,其中描绘了一段迷人的“明湖居听书”。作者对白妞的精采说书是这样写的:“忽又扬起,象放那东洋烟火,一个弹子上天,随化作千百道五色火光,纵横散乱。”,还记得那时候老师讲这种修辞手法叫“通感”或“移觉”,就是在描述客观事物时,用形象的语言使感觉转移,把人们某个感官上的感觉移植到另一个感官上,凭借感受相通,互相映照,让人感觉余韵不绝。这个广告的手法颇有这种味道,那种冰凉的感觉非常准确地从观众的眼睛传达到了身体上。看一看,就感觉一身凉意,就不用再买雪碧了,哈哈,这还是广告的本意吗。

雪碧广告

Popularity: 39%