免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 11740 | 回复: 25
打印 上一主题 下一主题

5555,我该用什么字符集?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-25 23:15 |只看该作者 |倒序浏览
最近刚开始学习使用PostgreSQL

初始化用的initdb --no-locale
建库用的-E EUC_CN

插入数据时发现"礽"这个字塞不进去
发现有很多汉字都塞不了

用UNICODE建的库,可以插入,但是看的话都是乱码了

我该用什么字符集呀,用UNICODE的话,我该怎么处理呀

论坛徽章:
0
2 [报告]
发表于 2004-12-25 23:51 |只看该作者

5555,我该用什么字符集??

呵呵,自问自答
好像找到一点点东东了

数据库用UNICODE建库
客户端用EUC_CN编码

正在学习中,不知道行不行

论坛徽章:
0
3 [报告]
发表于 2004-12-26 00:25 |只看该作者

5555,我该用什么字符集??

还是有点问题,呵呵
要支持更多的字符的话,客户端编码用GBK或GB18030吧

论坛徽章:
0
4 [报告]
发表于 2004-12-26 10:12 |只看该作者

5555,我该用什么字符集??

呵呵,楼主听有意思的!

不过非常感谢哟!

论坛徽章:
0
5 [报告]
发表于 2004-12-26 11:43 |只看该作者

5555,我该用什么字符集??

呵呵,刚开始学习postgresql,很多东西不太清楚
就直接来问了,等问了以后又自己找到了,只好自问自答了,呵呵

论坛徽章:
0
6 [报告]
发表于 2004-12-31 16:45 |只看该作者

5555,我该用什么字符集??

绝对不要用unicode外的其他编码,否则总有一天你会后悔

unicode存入了database之后,还必须用unicode来观看的呀,否则肯定会有乱码

论坛徽章:
0
7 [报告]
发表于 2005-01-22 17:46 |只看该作者

5555,我该用什么字符集??

我原来用的是unicode使用Tocat,显示没有问题,但是排序时就排不对了,所以后来还是改成GB2312就没问题了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2005-01-28 22:20 |只看该作者

5555,我该用什么字符集??

select name from list where region= '北方区‘
没错吧?
什么也没有找到。
这个字段只有这几种值:华东华南西北西南华中
如果后面那个“区”字都删除的话,
select name from list where region= '北方‘
一切ok,凡是该区的全部列出。
这个字段每个记录后面乱加一个字“域”
select name from list where region= '北方区域‘
也是一切ok
再都加一个字“里”
select name from list where region= '北方区域里‘
再次找不到北,什么也列不出来。
建库用的encoding为unicode
结论为字段记录值是双数中文字的才能作为检索条件,单数中文字则什么也检索不到。
哪位能指点一下这是为什么?
另:用euc_cn建库则不会发生这种情况,但是bulletming哥哥可能有过惨痛的教训所以我不敢用这个码。
在任何情况下我都没有乱码出现。

论坛徽章:
0
9 [报告]
发表于 2005-01-30 03:26 |只看该作者

5555,我该用什么字符集??

我试了一下

hd201=>; \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
hd201     | hd201    | UNICODE
jerryld   | jerryld  | UNICODE
postgres  | postgres | UNICODE
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII

hd201=>; \encoding
UNICODE
hd201=>; select * from test;
id |   name
----+----------
  1 | 鍗庝腑鍖哄煙
  2 | 鍗庡寳鍖哄煙
  3 | 鍗庡崡鍖哄煙
  4 | 瑗垮寳鍖哄煙
  5 | 鍗庝笢鍖哄煙
  6 | 鍗庝腑鍦板尯
  7 | 鍗庡寳鍦板尯
  8 | 鍗庡崡鍦板尯
  9 | 瑗垮寳鍦板尯
10 | 鍗庝笢鍦板尯
(10 rows)


hd201=>; \encoding GBK

hd201=>; select * from test;
id |   name
----+----------
  1 | 华中区域
  2 | 华北区域
  3 | 华南区域
  4 | 西北区域
  5 | 华东区域
  6 | 华中地区
  7 | 华北地区
  8 | 华南地区
  9 | 西北地区
10 | 华东地区
(10 rows)

hd201=>; select * from test where name='华中区域';
id |   name
----+----------
  1 | 华中区域
(1 row)

hd201=>; select * from test where name='华中地区';
id |   name
----+----------
  6 | 华中地区
(1 row)

hd201=>; select * from test where name like '华中__';
id |   name
----+----------
  1 | 华中区域
  6 | 华中地区
(2 rows)

hd201=>; select * from test where name like '华';
id | name
----+------
(0 rows)

hd201=>; select * from test where name like '华%';
id |   name
----+----------
  1 | 华中区域
  2 | 华北区域
  3 | 华南区域
  5 | 华东区域
  6 | 华中地区
  7 | 华北地区
  8 | 华南地区
10 | 华东地区
(8 rows)


hd201=>; select * from test order by name;
id |   name
----+----------
  5 | 华东区域
10 | 华东地区
  1 | 华中区域
  6 | 华中地区
  2 | 华北区域
  7 | 华北地区
  3 | 华南区域
  8 | 华南地区
  4 | 西北区域
  9 | 西北地区
(10 rows)

排序好像有点问题,第二个字的顺序有点不对

hd201=>; select substr(name,0) as p0,substr(name,1) as p1,substr(name,2) as p2, substr(name,3) as p3 , substr(name,4) as p4 from test;
    p0    |    p1    |   p2   |  p3  | p4
----------+----------+--------+------+----
华中区域 | 华中区域 | 中区域 | 区域 | 域
华北区域 | 华北区域 | 北区域 | 区域 | 域
华南区域 | 华南区域 | 南区域 | 区域 | 域
西北区域 | 西北区域 | 北区域 | 区域 | 域
华东区域 | 华东区域 | 东区域 | 区域 | 域
华中地区 | 华中地区 | 中地区 | 地区 | 区
华北地区 | 华北地区 | 北地区 | 地区 | 区
华南地区 | 华南地区 | 南地区 | 地区 | 区
西北地区 | 西北地区 | 北地区 | 地区 | 区
华东地区 | 华东地区 | 东地区 | 地区 | 区
(10 rows)

substr函数的起始位置参数中0和1是一样的让我迷惑了一会儿



暂时没有看出什么其他不对的地方,


偶用的是PostgreSQL 8.0
系统RedHat EL AS 3u3

客户端用的是psql for win
Linux下psql没有试验,因为偶用putty远程登陆,无法输入中文

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2005-01-30 13:16 |只看该作者

5555,我该用什么字符集??

粥哥:
俺们需要的就是 name=
要是头儿允许用like 的话,就不那么郁闷了。
凡是单数汉字的字段,只能用like,不能用=
可怜啊,程序要改n多地方的,为啥用euc_cn就没问题呢?
原始库文件里面这个region字段都是三个汉字,例如“华东区”
还有city字段,有双数汉字的“南京”,也有单数的“哈尔滨”,
原先的程序里面全都是
select name from list where city= '南京‘ 这种形式
现在凡是
select name from list where city= '哈尔滨‘ 的地方
那么这个城市的相关记录一个也列不出来,其他单数汉字名字的城市都如此,郁闷郁闷郁闷得不得了
这些字段的属性都是varchar
换过固定字符属性,没用。
  
救命啊~~~~~~~~~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP