请教如何将utf8字符串转成中文(已解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
alober
帖子: 144
注册时间: 2010-07-13 17:04

请教如何将utf8字符串转成中文(已解决)

#1

帖子 alober » 2011-11-11 20:49

我在 gedit 里添加了一个外部工具,命令如下
#!/bin/sh
xelatex $GEDIT_CURRENT_DOCUMENT_NAME

但当那个 tex 文档以中文命名时,它直接去编译转成 utf8 字符串后的文档,这样文档名不对,就找不到文档了,如果我编译 "文档.tex" 这个文件,错误示例如下:
! Emergency stop.
<*> %E6%96%87%E6%A1%A3.tex

请教我应该如何把这个 utf8 字符串转成正常的中文呢?
上次由 alober 在 2011-11-11 23:39,总共编辑 1 次。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请教如何将utf8字符串转成中文

#2

帖子 lilydjwg » 2011-11-11 20:57

这个不是 UTF-8 串,而是 URI 编码过后的表示。可以使用

代码: 全选

ascii2uni -a J
来解码。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请教如何将utf8字符串转成中文

#3

帖子 eexpress » 2011-11-11 21:09

看标题。lz概念模糊。“中文”是啥。
● 鸣学
alober
帖子: 144
注册时间: 2010-07-13 17:04

Re: 请教如何将utf8字符串转成中文

#4

帖子 alober » 2011-11-11 21:09

感谢2楼指点,原问题已解决。
另外问个问题,那串字符不是汉字按 utf8 三字节模板转换出来的吗?
上次由 alober 在 2011-11-11 21:18,总共编辑 1 次。
alober
帖子: 144
注册时间: 2010-07-13 17:04

Re: 请教如何将utf8字符串转成中文

#5

帖子 alober » 2011-11-11 21:11

确实不懂,表达不明白。望各位达人明示。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请教如何将utf8字符串转成中文

#6

帖子 lilydjwg » 2011-11-11 21:27

alober 写了:感谢2楼指点,原问题已解决。
另外问个问题,那串字符不是汉字按 utf8 三字节模板转换出来的吗?
那种样子的字符解码后不一定是 UTF-8 的(更不一定是汉字)。你可以试试百度搜索,然后解析下搜索结果页网址中的 %xx。另外,也不是所有汉字的 UTF-8 编码都是 3 字节.
alober
帖子: 144
注册时间: 2010-07-13 17:04

Re: 请教如何将utf8字符串转成中文

#7

帖子 alober » 2011-11-11 21:32

楼上的意思是 url 的编码都要加上%吧?utf8 编码里没有那个%,是这个意思吗?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请教如何将utf8字符串转成中文

#8

帖子 lilydjwg » 2011-11-11 22:48

alober 写了:楼上的意思是 url 的编码都要加上%吧?utf8 编码里没有那个%,是这个意思吗?
URL 里除去英文字母数字和一些英文标点符号外的字符都是要用 % 编码的,至于被编码的是什么东西它就不管了,所以你可以编码一张图片的数据进去也没问题。

UTF-8 编码就是一种字符编码方式。你在十六进制编辑器中看到的那些十六进制只是编码的表示方式,让人好读,就像这里的 % 形式编码的 URL 是给相关软件读的一样。
alober
帖子: 144
注册时间: 2010-07-13 17:04

Re: 请教如何将utf8字符串转成中文

#10

帖子 alober » 2011-11-11 23:38

我有点糊涂了。我知道 utf8 是一种编码方式,那用这种编码方式编码过的字符串不是 utf8 字符串吗?
我再慢慢理解理解吧。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 请教如何将utf8字符串转成中文

#11

帖子 lilydjwg » 2011-11-12 1:54

alober 写了:我有点糊涂了。我知道 utf8 是一种编码方式,那用这种编码方式编码过的字符串不是 utf8 字符串吗?
我再慢慢理解理解吧。
编码过后就是 ASCII 字符串了,不然岂不是没达到它的目的。
回复