相关疑难解决方法(0)

如何通过脚本在Unix中找到文件的编码

我需要找到放在目录中的所有文件的编码.有没有办法找到使用的编码?

file命令无法执行此操作.

我感兴趣的编码是:ISO-8859-1.如果编码是其他任何东西,我想将文件移动到另一个目录.

unix shell encoding file

280
推荐指数
9
解决办法
42万
查看次数

在Windows中获取文件的编码

这不是一个真正的编程问题,是否有命令行或Windows工具(Windows 7)来获取文本文件的当前编码?当然我可以写一个小C#应用程序,但我想知道是否有内置的东西?

windows encoding

178
推荐指数
8
解决办法
29万
查看次数

使用iconv将latin-1文件批量转换为utf-8

我在我的OSX上有一个PHP项目,它是在latin1 -encoding中.现在我需要将文件转换为UTF8.我不是一个shell编码器,我尝试过从互联网上找到的东西:

mkdir new  
for a in `ls -R *`; do iconv -f iso-8859-1 -t utf-8 <"$a" >new/"$a" ; done
Run Code Online (Sandbox Code Playgroud)

但这不会创建目录结构,它会让我在运行时加载错误.任何人都可以拿出整洁的解决方案吗?

shell character-encoding iconv

32
推荐指数
7
解决办法
7万
查看次数

表单是在windows-1252编码中提交的

我在Firefox Web控制台的JS选项卡中收到以下警告(Ctrl+ Shift+ K)

在Windows-1252编码中提交的表单无法对所有Unicode字符进行编码,因此用户输入可能会损坏.要避免此问题,应更改页面,以便通过将页面本身的编码更改为UTF-8或在表单元素上指定accept-charset = utf-8,以UTF-8编码提交表单.@ http://localhost:8080/myapp/login

html显式使用utf-8编码,如下所示:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
Run Code Online (Sandbox Code Playgroud)

html(实际上是Freemarker模板)文件以前是在Windows机器上.所以我使用这里建议的recode实用程序将它们重新编码为utf-8 .但我仍然看到同样的警告.

我在这里错过了什么?

Chrome的开发者工具实用程序(Ctrl+ Shift+ I)中没有警告或错误

firefox character-encoding

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

浏览器如何确定使用的编码?

我知道有两种设置编码的方法:

  1. 通过使用 Content-Type 标头。
  2. 通过在 HTML 中使用元标记

由于 Content-Type 标头不是强制性的,需要明确设置(服务器端可以根据需要设置),并且元标记也是可选的。

如果这两个都不存在,浏览器如何确定用于解析内容的编码?

html encoding

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

如何使C#引发解码异常?

我希望我的C#应用​​程序(具有GUI)可以帮助用户在“ unicode(utf-8)”和“旧版(cp1252)”之间进行选择。我想为用户提供两个独立的正确/错误读数,以了解是否可以以这两种格式“成功”(尽管不一定正确)读取文件,而不会丢失细节。

当我在C#中尝试以下操作时,它不起作用。也就是说,即使我在我知道包含非罗马字符的utf-8文本文件上调用它,它似乎总是返回true。

[编辑:实际上,我不应该以为这会失败。这可能是碰巧不正确的合理成功之一,因为大多数(所有?)字节流也是有效的cp1252。测试另一个方向确实会发现无效的utf-8,就像下面的Python代码一样。]

例如CanBeReadAs(“ nepali.txt”,Encoding.GetEncoding(1252))应该返回false,但返回true。

public static bool CanBeReadAs(string filePath, Encoding encoding)
    {
        // make it strict:
        encoding = Encoding.GetEncoding(encoding.CodePage, EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback);
        using (var r = new StreamReader(filePath, encoding, false))
        {
            try
            {
                r.ReadToEnd();
            }
            catch (Exception e)
            {
                //swallow
                return false;
            }
        }
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用“ string s = r.ReadToEnd();” 只是为了确保确实要对数据进行解码,但这似乎没有任何影响。

我究竟做错了什么?

注意:如果需要做一些特殊的事情来处理BOM,请也告诉我。如果那很简单,我倾向于忽略它们。(尽管其中一些文件混合使用了BTW编码,但我想实际上以BOM表开头的任何东西都是纯unicode。)

这是我创建的Python脚本,它使用相同的策略并且运行良好:

def bad_encoding(filename, enc='utf-8', max=9):
'''Return a list of up to max error strings for lines in the file not encoded in the specified …
Run Code Online (Sandbox Code Playgroud)

c# python encoding exception

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

标签 统计

encoding ×4

character-encoding ×2

shell ×2

c# ×1

exception ×1

file ×1

firefox ×1

html ×1

iconv ×1

python ×1

unix ×1

windows ×1