标签: encoding

文件名编码问题

我用谷歌搜索了这个主题,但找不到我要找的东西......以下“发生”在我身上:

\n\n

我将文件存储在 NTFS-USB 硬盘上,由于空间问题,我将它们移至 ext3 系统......不知何故,文件名(据我所知内容仍然没问题)编码搞砸了......我的文件现在看起来像下面这样:

\n\n
Kk\xc3\x83\xc2\xbcken <--- should have an "\xc3\xbc"\nJ\xc3\x83\xc2\xa4ger <--- should be an "\xc3\xa4"\nZw\xc3\x83\xc2\xb6lf <--- should be an "\xc3\xb6"\nf\xc3\x83\xc2\xbcnfte <-- should be an "\xc3\xbc"\netc ....\n
Run Code Online (Sandbox Code Playgroud)\n\n

这些只是例子,但已经给了我我的第一个问题\n为什么“\xc3\xbc”有两种不同的表示形式?\n(也许我搞砸了,在我搞砸之前,现在我混合了x个不同的编码层?:))

\n\n

我尝试了以下命令:

\n\n
convmv -r -f UTF-8 -t ISO-8859-1  *\n
Run Code Online (Sandbox Code Playgroud)\n\n

此命令适用于某些文件(例如Zw\xc3\x83\xc2\xb6lf),但不适用于所有文件:

\n\n
iso-8859-1 doesn\'t cover all needed characters for: "f\xc3\x83\xc2\xbcnfte"\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我猜它一定是另一种编码——但是是哪种?我怎样才能找到这个?

\n\n

还有什么方法可以解决这一切吗?

\n

linux encoding ntfs ext3 utf-8

5
推荐指数
1
解决办法
2264
查看次数

避免使用复杂过滤器进行 ffmpeg 重新编码

我有一个 ts 文件列表,这些文件将被连接起来,稍后进行修剪并将其编码为 mp4。

所有这些都工作正常...但是我现在遇到的问题是文件被重新编码...这不是我想要的,因为 ts 已经是 h264 和 mp3,所以只需将其打包成 mp4 就可以了好的。实际上,这是有效的:

ffmpeg -i file.ts -c copy file.mp4
Run Code Online (Sandbox Code Playgroud)

但这不是:

ffmpeg -i videohls-1935m-index.ts -y -filter_complex \
[0:v]trim=0:10,setpts=PTS-STARTPTS[v0]; \
[0:a]atrim=0:10,asetpts=PTS-STARTPTS[a0]; \
[0:v]trim=30:90,setpts=PTS-STARTPTS[v1]; \
[0:a]atrim=30:90,asetpts=PTS-STARTPTS[a1]; \
[0:v]trim=100:200,setpts=PTS-STARTPTS[v2]; \
[0:a]atrim=100:200,asetpts=PTS-STARTPTS[a2]; \
[0:v]trim=250:350,setpts=PTS-STARTPTS[v3]; \
[0:a]atrim=250:350,asetpts=PTS-STARTPTS[a3]; \
[v0][a0][v1][a1][v2][a2][v3][a3]concat=n=4:v=1:a=1[out] \
-map [out] \
-c copy \
videohls-1935m-index.mp4
Run Code Online (Sandbox Code Playgroud)

显然它不会“复制”编解码器,因为输出来自映射到 [out] 的虚拟出口(或类似的东西......老实说,我不知道它到底是如何工作的,但我知道就是这样) ,所以它没有一个“编解码器”……所以它不能复制它。

这意味着我有两个问题:

  1. 文件更小,这一点也不坏,但是......
  2. 文件被重新编码...因此质量也较低。

如何避免这种情况以保持视频质量?

video encoding ffmpeg

5
推荐指数
1
解决办法
5986
查看次数

我怎样才能找到这个损坏的中文文本的编码,并通过在线工具正确修复?

我有一个简体中文文本,当读取为 UTF-8 开头时, MandarinTools\xc2\xb4\xc3\x93\xc2\xba\xc3\x9c\xc2\xbe\xc3\x83\xc3\x92\xc3\x94\xc3\x87\xc2\xb0\xc2\xbf\xc2\xaa\xc3\x8a\xc2\xbc的在线工具(修复损坏的中文电子邮件的第一个搜索结果)将其修复为正确的,但不清楚它是如何修复的那。通过使用在线工具和十六进制编辑器,我知道每个字符都被编码为固定长度的 32 位:\xe4\xbb\x8e\xe5\xbe\x88\xe4\xb9\x85\xe4\xbb\xa5\xe5\x89\x8d\xe5\xbc\x80\xe5\xa7\x8b

\n\n
c2b4 c393 \xe4\xbb\x8e\nc2ba c39c \xe5\xbe\x88\nc2be c383 \xe4\xb9\x85\nc392 c394 \xe4\xbb\xa5\nc387 c2b0 \xe5\x89\x8d\nc2bf c2aa \xe5\xbc\x80\nc38a c2bc \xe5\xa7\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

这也表明一个字符被编码为 c2**-c3** 范围内的两个 16 位字。对于 UTF-16,这些字符的第一个 16 位字始终为 0。UTF-8 仅使用每个字符 24 位,而代码页 936 此处仅使用每个字符 16 位。\n我可以使用哪种方法来确定正确的编码转换?

\n\n

utf-8表示:

\n\n
e4bb 8e \xe4\xbb\x8e\ne5be 88 \xe5\xbe\x88\ne4b9 85 \xe4\xb9\x85\ne4bb a5 \xe4\xbb\xa5\ne589 8d \xe5\x89\x8d\ne5bc 80 \xe5\xbc\x80\ne5a7 8b \xe5\xa7\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

cp936表示:

\n\n
b4d3 \xe4\xbb\x8e\nbadc \xe5\xbe\x88\nbec3 \xe4\xb9\x85\nd2d4 \xe4\xbb\xa5\nc7b0 \xe5\x89\x8d\nbfaa \xe5\xbc\x80\ncabc \xe5\xa7\x8b\n
Run Code Online (Sandbox Code Playgroud)\n

encoding vim unicode chinese

5
推荐指数
1
解决办法
9199
查看次数

将拉丁重音字符 (ã,õ,á,é,í,…) 发送到 PHP/MySQL 中的数据库表时出现问题

我在使 mydatabase 表显示拉丁字符时遇到问题。(\xc3\xa3、\xc3\xb5、\xc3\xa1、\xc3\xa9、\xc3\xad、\xe2\x80\xa6)。我正在使用带有 Apache 2.4.9 和 MySQL 5.6.17 的 WAMP 服务器。

\n\n

我有一个用 HTML 创建的简单表单,并且有一个 PHP 代码,运行查询并创建帐户。这是 PHP 代码:

\n\n
include(\'config.php\'); //My database data for connection\n\nif(isset($_POST[\'submit\'])) {\n    $username = $_POST[\'username\'];\n    $password = $_POST[\'password\'];\n    $email = $_POST[\'email\'];\n\n    $query = "INSERT INTO account SET username = \'".$username."\', password = PASSWORD(\'".$password."\'), email = \'".$email."\'";\n    $execute_query = mysqli_query($connection, $query);\n    if($execute_query) { \n        //Creates the account\n    }\n    else { \n        //If an error occures\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如,现在我创建一个帐户:

\n\n
Username: Lu\xc3\xads\nPassword: 1234\nE-mail: somemail@mail.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我检查表时,它显示创建的帐户,但用户名显示Lu\xc3\x83s …

encoding query mysql php

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

确定并更改 Windows 上的文件名编码

我的 Windows 服务器上有一些文件名称中包含某些重音字符。在 Windows 资源管理器上,文件正常显示,但在命令提示符下使用默认设置运行“dir”会显示替换字符。

\n\n

例如,字符\xc3\xb6显示如o"列表中所示。当通过 SMB 从其他平台访问这些文件时,这会导致问题,可能是因为编码/代码页冲突。并非所有文件都存在该问题,而且我不知道问题文件来自何处。

\n\n

例子:

\n\n
E:\\folder\\files>dir\n Volume in drive E is data\n Volume Serial Number is 5841-C30E\n\n Directory of E:\\folder\\files  \n\n07/05/2016  07:46 PM    <DIR>          .\n07/05/2016  07:46 PM    <DIR>          ..\n12/01/2015  11:12 AM            14,105 file with o" character.xlsx\n01/22/2015  05:30 PM            11,598 file with correct \xc3\xb6 character.xlsx\n               2 File(s)         25,703 bytes\n               2 Dir(s)  2,727,491,600,384 bytes free\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经更改了文件和目录名称,但您会明白的。

\n\n

你知道这些名字是怎么来的吗?也许它们是使用其他平台或工具复制或创建的?

\n\n

如何批量查找并重命名所有问题文件?我查看了几个 GUI 重命名实用程序,但它们没有发现问题,并且仅适用于 Windows 资源管理器中显示的名称。

\n\n

驱动器上的文件系统是 ReFS,这可能与此有关吗?

\n\n

编辑:运行 PowerShell …

windows encoding filesystems character-encoding smb

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

Windows-1252 和 ANSI 编码有什么区别?

我正在尝试通过工具将UTF-8编码转换为ANSI编码。
但它显示西欧 (Windows)-1252而不是ANSI

它们是同一件事吗?我应该继续这个吗?

encoding character-encoding ansi

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

使用 pdftotext 将 PDF 转换为文本时可以修改编码吗?

有时当我pdftotext这样做时会产生完美的文本。我认为这是因为实际的 unicode 文本数据直接嵌入到 PDF 本身中,并且只需读出即可。

\n\n

但其他时候(大约一半或更多的文档不只是直接扫描的图像)它会导致〜奇怪的字形〜代替诸如变音符号和重音符号之类的东西,有时甚至是看起来模糊的字母。

\n\n

例如,这个约鲁巴语词典 PDF就存在这些问题。如果你运行这个:

\n\n
pdftotext yoruba.pdf yoruba.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

你最终会看到这些词散布在各处:

\n\n
expected     actual\n--------     ------\nlairot\xe1\xba\xb9le    lairot4ille\nik\xe1\xbb\x8dsil\xe1\xba\xb9      ikljlsil4il\nlog\xc3\xb3         logb\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,重音符号\xc3\xb3变成了字母b。但并不是每个 \xc3\xb3 都变成了 doc 中的 ab。许多人这样做,但不是全部。与\xe1\xba\xb9a相同4il。许多人都变成这样,可能是所有人。大多数时候(我的感觉是)更晦涩的重音符号/变音符号\xe1\xba\xb9会被转换成陌生的字符或字符序列

\n\n

为什么是这样?是 OCR 的东西吗?或者PDF实际上是否嵌入了纯文本(即它不是图像的扫描文档)?然而,它在某种程度上没有被正确解码。我想知道这个问题的答案,所以至少我知道这是 OCR 问题或编码/解码问题。

\n\n

如果这是一个编码问题,那就很有趣了。那么我的问题是,我可以告诉pdftotext使用一些晦涩的解码技术吗?或者是什么。

\n\n

我提出这个问题的部分原因是我最近发现了一些网页是用 或 编码的ucs2latin1有些甚至是用一些奇怪的windows2255或某种编码编码的。因此,我必须修改编码/解码才能正确提取 HTML 文档中的文本。我想知道在这种情况下同样的情况是否也适用于 PDF。

\n\n

另一个遇到此问题的文档是纳瓦霍词典。我不知道这是 OCR …

encoding pdf ocr unicode character-encoding

5
推荐指数
0
解决办法
346
查看次数

如何更改我的 SFTP 服务器正在使用的编码?

\n

我有一个 Ubuntu 服务器,它.png使用 SFTP 托管一些文件。

\n

Force UTF-8当我尝试使用 FileZilla 或 WinSCP 从 Windows 笔记本电脑访问这些文件时,如果选中(Site Manager \xe2\x86\x92 Custom Charset),则文件无法成功传输:

\n

这些文件来自在 Windows Server 上运行的 VisualCron,虽然我已在 VisualCron 中将编码更改为 UTF-8,但我不确定它是否适用,因为这是它们可以开始出现的唯一位置编码不同。

\n

设置:\n在此输入图像描述

\n
    \n
  • OpenSSH sshd_config:\n
    # AcceptEnv LANG LC_*\nSubsystem sftp      = /usr/lib/openssh/sftp-server -l INFO\nMatch Group         = sftp_users\nChrootDirectory     = /ftproot/owners/%u\nForceCommand        = internal-sftp\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

请注意,我已注释掉:AcceptEnv LANG LC_*。根据here,这意味着服务器将不允许客户端传递区域设置环境变量。在这种情况下,即使使用VisualCron 的 Windows Server 使用“错误”编码发送文件,服务器也不应该接受它,而应使用 UTF-8。正确的?

\n

windows linux encoding sftp

5
推荐指数
1
解决办法
9927
查看次数

如何使用 FFmpeg 将视频无损转换为 AV1?

我有一组 AVI 视频(无损视频流;无音频),我的目标是使用 FFmpeg 将它们转换为 AV1 无损

FFmpeg(包含 librav1e、libaom-av1 和 libsvtav1)在我的 Windows 8.1 机器上运行良好,我可以使用 AV1 与 VP9 中的命令部分将视频转换为 H.264、H.265 和 VP9(全部无损)与 AVC (h.264) 与 HEVC (h.265) 对比:第一部分 - 无损

但我对该页面上 AV1 的命令行参数感到困惑。我也不知道如何转换ffmpeg 文档中描述的 AV1 选项中描述的 AV1 选项转换为 FFmpeg 命令行(并且找不到任何教程)。

我还检查了libaom AV1 编码指南叛军联盟的 AV1 视频编解码器编码指南等,但他们根本没有提到 AV1 无损。

您能否为一个或多个编码器(librav1e、libaom-av1、libsvtav1)提供一个示例 FFmpeg 命令行?

video encoding ffmpeg command-line lossless

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

在 Notepad++ 中更改编码几次后如何恢复我的文本文件?

我的文本文件存在格式问题。我认为最初是 Windows-1252。然后我尝试使用 Notepad++ 将文件重新格式化为另一种编码格式,做了几次,结果一团糟,就像???A??a?s??A\xc2\xa7???A??a?s??A\xc2\xa0???A??a?s??A\xc2\xb5???A??a?s??A\xc2\xae???A??a?s??A\xc2\xa4????????????. 我不记得我所做的实际操作顺序。我唯一确定的是我在 ANSI、UTF-8 和 Windows-1251 之间切换。所有这些都没有让我的文本恢复到正确的西里尔字母格式,就像以前一样。

\n

那么,有没有办法取回我在该文件中的信息呢?txt 文件是否包含所有信息,而我只需要弄清楚我需要什么编码格式,或者它被替换并且信息永远丢失?最初,我的文件中有一些西里尔文字。

\n

encoding

5
推荐指数
1
解决办法
2879
查看次数