免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: buypro9
打印 上一主题 下一主题

关于utf-8 代码转换问题 求解 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2011-01-21 11:14 |只看该作者
本帖最后由 toniz 于 2011-01-21 11:17 编辑

山   ANSI 为 C9BD  ANSI对于字母就是ASCII,对于中文就是GB2312
山   UNICODE 为 5c71    0101  110001  110001
山   UTF8 为  e5b1b1    11100101 10 110001 10 110001

UTF8 是 UNICODE 的一种储存形式,

论坛徽章:
0
42 [报告]
发表于 2011-01-21 11:41 |只看该作者
本帖最后由 buypro9 于 2011-01-21 12:07 编辑

删除

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
43 [报告]
发表于 2011-01-22 14:24 |只看该作者
第一种肯定不是utf-8{:3_182:}

论坛徽章:
0
44 [报告]
发表于 2011-01-25 12:48 |只看该作者
本帖最后由 1.. 于 2011-01-25 12:53 编辑

从1楼给出的图看是ISO-8859-1编码表示的汉字。
我目前有一个utf-8编码的数据库,就需要转换成ISO-8859-1编码的格式,里面的汉字转换后总是变成?,就是不能采取楼主的方式表示出来。

论坛徽章:
0
45 [报告]
发表于 2011-01-25 14:57 |只看该作者
楼上的你要将整个数据库数据转成 那个格式???

为什么不直接按以前的用法使用呢。。读出后 然后编码。要知道那种编码占的字节比较多

论坛徽章:
0
46 [报告]
发表于 2011-01-25 21:30 |只看该作者
本帖最后由 1.. 于 2011-01-25 21:39 编辑
楼上的你要将整个数据库数据转成 那个格式???

为什么不直接按以前的用法使用呢。。读出后 然后编码。 ...
buypro9 发表于 2011-01-25 14:57

对,我的数据库是使用UTF-8编码,但是无法精确搜索数据库里的中文,所以尽管ISO-8859-1编码的字节数可能较大,但也是没有办法的事情,如果您知道,请告知如何正确进行汉字转码,也就是utf-8编码的汉字转换为is0-8859-1编码的汉字,多谢了!!
很遗憾,对perl一点知识没有,我是参照UC的标题索引进来的,原来都没有来过这个板块,而且对Mysql也不熟悉,也不清楚是否在mysql下有类似的转换方法。现在已经将sql文件导出了,但是不清楚如何转换。

论坛徽章:
0
47 [报告]
发表于 2011-01-26 10:08 |只看该作者
楼上的我也不是很懂的

不过我感觉可能你是没搜索方法不正确或者还没搞清楚编码问题。

如果一定要转换的话。只能导出了

如果不导出 也可以自己写代码逐条记录去更新了。 可以分批次更新 你可以尝试先更新几条看看效果是否你需要的效果。

(切记转换前做好备份)

论坛徽章:
0
48 [报告]
发表于 2011-01-26 12:17 |只看该作者
如果使用utf-8编码的数据库,目前大多使用二分词法来搜索,精确度不太高,目前也有台湾的兄弟开发出了精确的搜索方式,不过我只是不想在下次升级程序时再次麻烦人家,所以想直接转换了将数据库转换为ISO-8859-1编码了事。
逐条更新的代码我还真不会写,况且数据库很大,这也不是办法。(小量的转换可以借助dreamwaver来实现,但是大于1M的文件就打开很慢了,并不适合数据库的编码转换。)
多谢buypro9了,我再自己找找有没有其他可以无损转换数据库内汉字的现成程序吧。

论坛徽章:
0
49 [报告]
发表于 2011-01-26 15:02 |只看该作者
mysql  不熟悉,貌似可以对表指定编码。

1.笨的方法可以是把库表数据先导出来,对导出的文件转码,重建另外一个编码的表,然后再重新导入该表。

2.也可以直接把数据导出成SQL语句,然后重建完表后用这段SQL语句插入数据。

论坛徽章:
0
50 [报告]
发表于 2011-01-28 11:51 |只看该作者
本帖最后由 buypro9 于 2011-01-28 11:54 编辑

#!C:\perl\bin
#记录一下备用
#You made a simple mistake, you saved the Perl program in GB18030.
#When it contains use utf8;, you must save it in UTF-8 instead.
use utf8;
use Encode qw(encode PERLQQ XMLCREF);
my $string = '醉把笑靥仔细看 ';
#print encode('ascii', $string, PERLQQ);

print encode('ascii', $string, XMLCREF);


#######
  1. R:\>perl 1.cgi
  2. 醉把笑靥仔细看
  3. R:\>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP