标签: character-encoding

文件名中的特殊字符 (\#033OA)

我在 rsync 期间遇到了一个非常顽固的错误的小问题。它是由文件名中带有特殊字符的文件引起的。还有其他的,但我可以通过对文件名的编码进行一些转换来解决这个问题。但是,我什至找不到这个文件。

所以这就是 rsync 所说的:

../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)
Run Code Online (Sandbox Code Playgroud)

注意到的第一件事是字符代码不能是十六进制或八进制,所以我用谷歌搜索它并只找到了this。所以它可能是一个CURSOR UP字符(或不是)。我试过了

ls -la *`printf '\033OA'`*
Run Code Online (Sandbox Code Playgroud)

无济于事。我还尝试将该目录的 ls 输出管道化,od但无济于事。

我还可以做些什么?或者我到底在寻找什么角色?

谢谢

character-encoding special-characters filenames

10
推荐指数
1
解决办法
3万
查看次数

在 Windows 上编辑的 Bash/Korn shell 脚本抛出错误“...^M: not found”

我使用 Notepad++ 在 Windows 中编写了一个 Bash 脚本。

cxStopAllServicesOnSERVER.sh

#!/usr/bin/bash
cd "/some/path"
echo "Hi. Logs can be found at "`pwd`"/cxStartStopLogger.log"
echo "["`date`"]*** STOPPING ALL SERVICES ON SERVER ***" >> "cxStartStopLogger.log"
exit
Run Code Online (Sandbox Code Playgroud)

现在上传并设置所需的文件权限后,我尝试按如下方式执行它:

bash-3.00$ cat cxStopAllServicesOnSERVER.sh #Let's have a look at the code.
#!/usr/bin/bash
cd "/some/path/"
echo "Hi. Logs can be found at "`pwd`"/cxStartStopLogger.log"
echo "["`date`"]*** STOPPING ALL SERVICES ON SERVER ***" >> "cxStartStopLogger.log"

bash-3.00$ # Code and hashbang 'looks' correct, 
bash-3.00$ # if there is any issue with the format (EOL …
Run Code Online (Sandbox Code Playgroud)

bash editors ksh character-encoding windows

10
推荐指数
1
解决办法
4万
查看次数

将带有八进制转义符的 UTF-8 代码的 ASCII 文件转换为 UTF-8

  1. 我有一个文本文件,它本身就是一个 ASCII 文件,但包含表示 utf-8 代码的八进制转义序列:

    \350\207\252\345\212\250\346\216
    
    Run Code Online (Sandbox Code Playgroud)

    是否有一些程序或命令可以将此类 ASCII 文件转换为实际以 utf-8 编码的文本文件?

  2. 顺便说一下,本站是“在线 ASCII(Unicode Escaped) 到 Unicode(UTF-8) 转换工具”,本站是“在线 Unicode(UTF-8) 到 ASCII(Unicode Escaped) 转换工具”。他们是否在我的问题中进行了转换?如果不是,他们进行了哪些类型的转换?

character-encoding text-processing

10
推荐指数
3
解决办法
8910
查看次数

终端:非英文字符

我曾经能够在我的控制台/终端中复制和粘贴(或在我加载相应的键盘布局时输入)任何类型的字符(例如 é ö ñ ß ? ?)。

现在我买了一台新电脑,它不再工作了,只有英文/ASCII 字符(但在其他程序中,例如 firefox,它仍然有效)。

发行版:Ubuntu。尝试过的终端:gnome-terminal、xterm、konsole。

我尝试将 /etc/environment 中的 LANG 设置为 en_US.UTF-8但重启后echo $LANG仍然给出C. 我还尝试在 gnome-terminal -menu 中设置Character encoding为- 没有效果。Unicode(UTF-8)Terminal

问题:我怎样才能得到一个能够处理非英文字符的终端?

ubuntu character-encoding locale gnome-terminal

9
推荐指数
1
解决办法
2万
查看次数

如何用纯 UTF-8 文本替换所有百分比编码的 UTF-8 子字符串?

我有一个 html 文件,在 URL 中有很多 % 编码的 UTF-8 文本。

例如“%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B”代表“???????” (俄语中的“资源”)。

任务是用可读的 UTF-8 文本替换所有此类子字符串。

为了简化任务,我们可以考虑%文件中没有其他符号用法。字母数字可以是大写也可以是小写。

我怀疑这可以用优雅来完成sedperlawk或东西,但不知道怎么办。

这个网络应用程序似乎可以通过粘贴在那里的文本来解决问题。

character-encoding text-processing unicode text

9
推荐指数
2
解决办法
3211
查看次数

如何更改语言环境/编码以避免在终端中出现奇怪的字符?

我已经安装tree在我的 ubuntu 盒子上,当我从 Putty 连接到它并启动时,tree我得到了这个:

$ tree
âââ html.vim -> xml.vim
âââ js.vim -> xml.vim
âââ xml.vim
Run Code Online (Sandbox Code Playgroud)

而不是这个:

$ tree --charset=ANSII
|-- html.vim -> xml.vim
|-- js.vim -> xml.vim
`-- xml.vim
Run Code Online (Sandbox Code Playgroud)

例如,当我从npm(package manager from nodejs)列出我的包时,我也会遇到这个问题

$ npm list
/home/monkey/scripts/chatter
âââ? express@3.0.6
â âââ buffer-crc32@0.1.1
â âââ commander@0.6.1
â âââ? connect@2.7.2
â â âââ bytes@0.1.0
Run Code Online (Sandbox Code Playgroud)

我该如何更改(从 Putty 或 linux box)?

terminal character-encoding putty locale

9
推荐指数
1
解决办法
8784
查看次数

由于编码问题,相同的文件,不同的文件名?

我正要从它的源中区分备份以手动验证数据是否正确。一些字符,比如 åäö,在原始数据上没有正确显示,但是当客户端(通过 samba)正确解释它时,没有什么可担心的。从备份恢复的数据正确显示字符,导致差异不认为它们是相同的文件(有差异,而是完全不同的文件)。

md5 sums,相同的文件但不同的名称。

# md5sum /original/iStock_000003637083Large-barn*
e37c34968dd145a0e25692e1cb7fbdb1  /original/iStock_000003637083Large-barn p? strand.jpg

# md5sum /frombackup/iStock_000003637083Large-barn*
e37c34968dd145a0e25692e1cb7fbdb1  /frombackup/iStock_000003637083Large-barn på strand.jpg
Run Code Online (Sandbox Code Playgroud)

挂载选项和文件系统

/dev/sdb1 on /original type ext4 (rw,noatime,errors=remount-ro)
/dev/sdc1 on /frombackup type ext4 (rw)
Run Code Online (Sandbox Code Playgroud)

语言环境

LANG=sv_SE.UTF-8
LANGUAGE=
LC_CTYPE="sv_SE.UTF-8"
LC_NUMERIC="sv_SE.UTF-8"
LC_TIME="sv_SE.UTF-8"
LC_COLLATE="sv_SE.UTF-8"
LC_MONETARY="sv_SE.UTF-8"
LC_MESSAGES="sv_SE.UTF-8"
LC_PAPER="sv_SE.UTF-8"
LC_NAME="sv_SE.UTF-8"
LC_ADDRESS="sv_SE.UTF-8"
LC_TELEPHONE="sv_SE.UTF-8"
LC_MEASUREMENT="sv_SE.UTF-8"
LC_IDENTIFICATION="sv_SE.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

od -c

# ls "/original/iStock_000003637083Large-barn p? strand.jpg" | od -c
0000000   /   v   a   r   /   w   w   w   /   m   e   d   i   a   b   a
0000020   n   k   e   n …
Run Code Online (Sandbox Code Playgroud)

linux diff character-encoding

9
推荐指数
1
解决办法
3781
查看次数

如何在远程红帽机器上正确显示汉字?

我正在使用 Ubuntu14.04 连接到远程主机。

它的版本是:

Linux 版本 2.6.32-431.11.5.el6.yyyzzz.x86_64(gcc 版本 4.4.7 20120313(Red Hat 4.4.7-4)(GCC))#1 SMP Thu Jul 3 09:42:34 CST 2014

我在那台机器上上传的文件不能正确显示汉字。然后我打开一个文件,用 Ubuntu 随机输入汉字ibus input method。它显示:

~R~V?~K~B~I~W?~I~N~T??~T~E
Run Code Online (Sandbox Code Playgroud)

我在网上搜索并尝试了以下两种方法:

1:检查语言环境

It shows:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

好像没问题。

2:安装中文支持包

我做了:

yum install "@Chinese Support"
Run Code Online (Sandbox Code Playgroud)

它在那台机器上安装了 178M 文件。

之后,我打开另一个文件,并尝试用 ibus 输入一些中文。但是问题依然存在,如何解决呢?


update1 之后 我做了更多的研究。我发现有些字符可以正确输入(通过拼音输入法,ibus)。喜欢:

? ? ? ?
Run Code Online (Sandbox Code Playgroud)

它们都对应着它们的拼音。但是每个字符后面都有一个自动生成的空格(不是我输入的)。

如果我尝试输入 ??????? (它们与上述4个汉字的拼音相同)。我有:

?~P?~]~\ ~[? ~H?
Run Code Online (Sandbox Code Playgroud)

根据我的经验,如果代码转换完全搞砸了。当我输入拼音时,我会得到一些看起来像中文但实际上不是的有线字符,它们永远不会与我输入的拼音对应。

这一次,情况有点不同。我可以正确输入一些字符(带有系统生成的空格),而其他字符则无法辨认。

character-encoding input-method unicode

9
推荐指数
1
解决办法
3万
查看次数

通过 ssh 连接到 tmux 会话时出现 UTF-8 问题

设想:

\n

我有一台服务器,上面运行着 tmux 会话。让我们tmux_session在本文的其余部分中将该会话称为“会话”。

\n

可以通过两种略有不同的方式来附加到该会话:

\n
    \n
  1. 首先通过 ssh 连接到服务器:

    \n
    user@host$ ssh user@server.tld\n
    Run Code Online (Sandbox Code Playgroud)\n

    然后附加到指定的会话:

    \n
    user@server$ tmux a -d -t tmux_session\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 通过 ssh-ing 并同时附加:

    \n
    user@host$ ssh user@server.tld -t tmux -a -d -t tmux_session\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
\n

症状:

\n

方法 \xe2\x84\x961按预期工作。我的LANG设置为C.UTF-8, echo-ing 它在里面tmux_session工作正常,并且报告正确。像“\xc2\xb9\xc2\xb2\xc2\xb3\xc2\xa4”这样的字符的 Unicode 输入工作得很好。

\n

方法 \xe2\x84\x962产生一个会话,该会话无法显示除简单 ASCII 之外的 Unicode 字符。所有其他字符均被替换为_(下划线)。但是,当输入特殊字符时,该字符实际上会输入到内部运行的任何应用程序中tmux_session,我使用编辑器、IRC 客户端等确认了它。当我使用方法 \xe2\x84\x961 分离并重新附加时,之前输入的字符显示正确。

\n

使用方法 …

ssh character-encoding tmux

9
推荐指数
1
解决办法
3207
查看次数

如何从十六进制变量中获取 UTF8?

我正在为客户端调试应用程序,我从数据库中找到了可能是解决方案的信息。我要求客户端提取它,但不幸的是客户端向我发送了十六进制的原始数据......

我要求客户从数据库工具向我重新发送纯文本,但在等待他们的回应我正在寻找一个 bash 解决方案。

我知道编码的数据是 UTF-8 编码的字符串:有没有办法用 Unix 工具解码它?

ubuntu character-encoding

8
推荐指数
1
解决办法
5156
查看次数