Articles of 编码

如何检查一个语言环境是否是UTF-8?

我正在与Yocto合作为ARM设备(i.MX 6Quad Processors)创buildembedded式Linux发行版。 我已经用variablesconfiguration了所需语言环境的列表: IMAGE_LINGUAS = "de-de fr-fr en-gb en-gb.iso-8859-1 en-us en-us.iso-8859-1 zh-cn" 因此,我已经获得了包含以下文件夹的文件系统: root@lam_icu:/usr/lib/locale# cd /usr/share/locale/ root@lam_icu:/usr/share/locale# ls -la total 0 drwxr-xr-x 6 root root 416 Nov 17 2016 . drwxr-xr-x 30 root root 2056 Nov 17 2016 .. drwxr-xr-x 4 root root 296 Nov 17 2016 de drwxr-xr-x 3 root root 232 Nov […]

如何通过丢帧来加速video?

我有一个30分钟的video。 我想做一个加速的版本,比如15分钟。 我可以通过删除每个第二帧来做到这一点。 我怎么能在Linux上做到这一点? 我正在玩gstreamer,看起来很酷。 有没有办法与gstreamer做到这一点? 什么是gst-launch命令行来做到这一点? 我的源video是在Motion JPEG,所以我确实有帧丢弃。 即使是使用关键帧,还是应该有一种“加倍速度”的方法吗? 我想要一个命令行的方式来做到这一点,因为我想自动化它。

与基于Linux的WAGO PFC200 PLC上的CoDeSys程序进行通信

目前我正在熟悉PLC,特别是WAGO 750-8206 PLC。 它提供了一个Linux操作系统,可以运行CoDeSys程序。 有一些I / O模块连接到控制器:750-530,750-430和750-600。 我想知道的是这样的: 是否有可能编写一个在PLC上运行的C ++ linux应用程序并获取/设置数字input和输出? 甚至更好:我可以编写一个CoDeSys程序“与I / O交谈”并处理所有的逻辑,同时可以通过C ++ linux程序访问? 这个想法是这样的:我希望CoDeSys程序检查两个数字input。 如果两者均为高,则应将variables设置为定义的值。 linux应用程序应该能够读取该variables并进行进一步处理(例如将JSon数据发送到服务器或类似的地方)。 另外,当linux应用程序收到触发命令的消息时,我需要能够将命令从linux应用程序发送到CoDeSys程序,以便切换数字输出(或设置模拟输出的值)。 任何关于这个话题的想法和评论都非常感谢,因为我对这个话题是全新的。 提前致谢!

什么是argv的编码?

我不清楚在C的argv中使用了哪些编码。 特别是,我对以下情况感兴趣: 用户使用区域设置L1来创build名称N包含非ASCII字符的文件 稍后,用户使用语言环境L2在命令行上制表该文件的名称,将其作为命令行参数提供给程序P P在命令行上看到什么字节序列? 我观察到,在Linux上,在UTF-8语言环境中创build文件名,然后在(例如) zw_TW.big5语言环境中对其进行zw_TW.big5似乎会导致我的程序P被送入UTF-8而不是Big5 。 但是,在OS X上,相同的一系列操作会导致我的程序P获取Big5编码的文件名。 以下是我认为目前为止(长时间,我可能是错的,需要纠正): 视窗 文件名以一些Unicode格式存储在磁盘上。 所以Windows取名为N ,从L1(当前代码页)转换为N的Unicode版本,我们将调用N1 ,并将N1存储在磁盘上。 我后来假设的是,当后面的选项卡完成时,名称N1被转换为区域L2(新的当前代码页)以供显示。 幸运的是,这将产生原来的名字N – 但是如果N包含在L2中不可表示的字符,这将是不正确的。 我们称之为新名字N2 。 当用户实际按下回车键以运行该参数时,名称N2被转换回Unicode,再次产生N1 。 这个N1现在可以通过GetCommandLineW / wmain / tmain以UCS2格式提供给程序,但GetCommandLine / main用户将在当前语言环境(代码页)中看到名字N2 。 OS X 就我所知,磁盘存储的故事是一样的。 OS X将文件名称存储为Unicode。 对于Unicodeterminal,我认为terminal会在Unicode缓冲区中build立命令行。 因此,当您完成选项卡时,它会将该文件名作为Unicode文件名复制到该缓冲区。 运行该命令时,该Unicode缓冲区将转换为当前语言环境L2,并通过argv传送给程序,程序可以将当前语言环境的argv解码为Unicode以显示。 Linux的 在Linux上,一切都不一样,我对发生的事情感到非常困惑。 Linux将文件名存储为字节string ,而不是Unicode。 所以,如果在locale L1中创build一个名称为N的文件, N作为字节string是存储在磁盘上的文件。 当我以后运行terminal并尝试并完成名称时,我不确定会发生什么情况。 它在我看来像命令行被构造为一个字节缓冲区,文件的名称作为一个字节string被串联到该缓冲区。 我假定当你input一个标准字符时,它会被dynamic地编码成附加到该缓冲区的字节。 当你运行一个程序时,我认为这个缓冲区是直接发送给argv 。 现在, argv有什么编码? 它看起来像在命令行中键入的任何字符,而在语言环境中L2将采用L2编码,但文件名将采用L1编码 […]

如何重置emacs以utf-8-unix字符编码保存文件?

我有个问题。 我发现emacs最近停止了用默认字符集“ utf-8-unix ”保存所有的新文件。 我不明白我做了什么,但是当我打开一个文件,在小缓冲区上方,我看到“ – :—”而不是“ -U:— ”,其中“U”表示文件用utf-8-unix字符集保存。 如何重置emacs来保存文件在适当的编码系统?

iconv任何编码为UTF-8

我试图将iconv指向一个目录,所有文件将被转换为UTF-8,而不pipe当前编码如何 我正在使用这个脚本,但你必须指定你要从哪个编码。 我怎样才能使它自动检测当前的编码? dir_iconv.sh #!/bin/bash ICONVBIN='/usr/bin/iconv' # path to iconv binary if [ $# -lt 3 ] then echo "$0 dir from_charset to_charset" exit fi for f in $1/* do if test -f $f then echo -e "\nConverting $f" /bin/mv $f $f.old $ICONVBIN -f $2 -t $3 $f.old > $f else echo -e "\nSkipping $f […]

Linux / Python:编码用于打印的unicodestring

我有一个相当大的Python 2.6应用程序,大量的打印语句洒了。 我在整个使用Unicodestring,它通常很好。 但是,如果我redirect的应用程序的输出(如“myapp.py> output.txt”),那么我偶尔会得到这样的错误: UnicodeEncodeError: 'ascii' codec can't encode character u'\xa1' in position 0: ordinal not in range(128) 我想如果有人把LOCALE设置为ASCII,也会出现同样的问题。 现在,我完全理解这个错误的原因。 在我的Unicodestring中有不能用ASCII编码的字符。 很公平。 但是我希望我的python程序尽最大努力去打印可以理解的东西,可能是跳过可疑字符或用Unicode标识replace它们。 这个问题一定是常见的…处理这个问题的最佳做法是什么? 我更喜欢一个解决scheme,让我继续使用普通的“打印”,但我可以修改所有事件,如果有必要。 PS:我现在已经解决了这个问题。 解决scheme既不是给出的答案。 我使用了http://wiki.python.org/moin/PrintFails中给出的方法,由ChrisJ在其中一个注释中给出。 也就是说,我用一个包含正确参数的unicode编码的包装来replacesys.stdout。 工作得很好。

为什么在与UNIX / Linux环境交互时使用UTF-8编码?

我知道这是习惯,但为什么? 有没有真正的技术原因,为什么其他方式是一个非常糟糕的主意,还是只是基于编码和向后兼容的历史? 另外,不使用UTF-8有什么危险,但是其他一些编码(最值得注意的是UTF-16 )呢? 编辑:通过交互,我主要是指shell和libc 。

如何使用* nix中的控制台工具将\ uXXXX unicode转换为UTF-8

我使用curl获得一些URL响应,这是JSON响应,它包含unicode转义的国家字符,如\u0144 (ń)和\u00f3 (ó) 。 我如何将它们转换为UTF-8或任何其他编码保存到文件?

Perl:在Windows上pipe理path编码

我正在努力使用包含非英文字符(Activestate Perl,Windows XP)的path。 如何打开,写入,复制位于path中的文件,并说出希腊语/俄语/法语重音字符? 假设我想将我的text.txt文件复制到的目录是: C:\Documents and Settings\στα\Desktop use File::Spec; my $save = File::Spec->canonpath( $mw->chooseDirectory() ); my $file = catfile($save , "renamed_text.txt"); my $input = "üüü\text.txt"; copy ($input, $file) or die "File cannot be copied.";