免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: 小粥

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

论坛徽章:
0
发表于 2005-02-04 01:57 |显示全部楼层

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

会不会和pgadmin有关啊// 换个客户端试一下?? 比如ems那个

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2005-02-04 10:07 |显示全部楼层

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

刚刚试了,EMS PostgreSQL Manager 2.7.0.1
同样结果,郁闷
我看就是pg的bug
只好用劝客户改用mysql或者mssqlserver了,兼容性好一点,oracle太贵。
死不瞑目啊

论坛徽章:
0
发表于 2005-02-05 02:09 |显示全部楼层

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

我这里用的pg 7.4.x的版本。。。的确无此问题出现。。。奇怪了。

论坛徽章:
0
发表于 2005-02-05 17:20 |显示全部楼层

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

又试了一下,用=做条件判断确实出不来
hd201=>; select * from test where name = '华中%';
id | name
----+------
(0 rows)

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

论坛徽章:
0
发表于 2005-02-05 21:56 |显示全部楼层

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

你的问题出在你登陆的客户端不能显示unicode,建议你使用pgadmin登陆,如果是secureCRTd登陆,建议你使用4.1版本以上,4.1版本以上才支持unicode方式显示汉字。另外如果数据库使用了unicode,最好在启动和建立数据库的时候都将LANG设置成unicode的,比如zh_CN.utf8的,至少我的java存储过程是依据LANG编码写文件的。说是postgresql支持客户端自动转code,具体的还没有试验出什么结果。
顺便说一句,我使用pgadmin按照unicode插入的数据使用EMS打开时必须使用GBK才能看见中文,但是有时候用EMS在GBK插入数据后,在pgadmin下看到的是UNICODE的,是不是自动转码的功能就不清楚了。
EMS绝对有问题,但是pgadmin功能又太弱,支持的数据类型又少,我只能是pgadmin和EMS两个工具一起用,至于最的结果对错,我还是直接看编码就知道了。

论坛徽章:
0
发表于 2005-02-16 16:37 |显示全部楼层

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

跟pgadmin、postgresql没关系,以下是本人在win2000、postgresql8下的测试,估计在linux/unix环境下有差异:

表数据、结构:

--
-- PostgreSQL database dump
--

SET client_encoding = 'UNICODE';
SET check_function_bodies = false;
SET client_min_messages = warning;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = true;

--
-- Name: weather; Type: TABLE; Schema: public; Owner: lzh; Tablespace:
--

CREATE TABLE weather (
    city character varying(80),
    temp_lo integer,
    temp_hi integer,
    prcp real,
    date date
);


ALTER TABLE public.weather OWNER TO lzh;

--
-- Data for Name: weather; Type: TABLE DATA; Schema: public; Owner: lzh
--

COPY weather (city, temp_lo, temp_hi, prcp, date) FROM stdin;
San Francisco        46        50        0.25        1994-11-27
San Francisco        43        57        0        1994-11-29
北方区        37        54        0.25        1994-11-29
\.


php测试代码:

<?php
       
        header(        'Content-Type: text/html; charset=utf-8' );
       
        $conn   = pg_connect( 'host=localhost port=5432 dbname=lzh user=lzh password=lzh' );
        $key    = iconv( 'gb2312', 'utf-8', '北方区' );
        $result = pg_query( "select * from weather where city = '$key'" );
        $array  = array();
       
        while( $array = pg_fetch_array( $result ) )
        {
                print_r( $array );
        }

        pg_free_result( $result );
        pg_close( $conn );

?>;

无论用like或者=,无论字段值的长度,中英文混合,测试均正常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP