相关疑难解决方法(0)

在C#中确定字符串的编码

有没有办法在C#中确定字符串的编码?

说,我有一个文件名字符串,但我不知道它是用Unicode UTF-16编码还是系统默认编码,我怎么知道呢?

c# string encoding

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

如何找到文件的编码?C#

好吧,我需要找出我在某个目录中找到的哪些文件是UTF8编码的ANSI编码,以便在我稍后决定的其他内容中更改编码.我的问题是..如何判断文件是UTF8还是ANSI编码?这两种编码实际上都在我的文件中.

c#

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

13
推荐指数
4
解决办法
3万
查看次数

检查无效的UTF8

我将从UTF8格式转换为十六进制的实际值.但是,我需要捕获一些无效的字节序列.有没有一种快速方法可以检查角色是否属于C++中的UTF8?

c++ utf-8

10
推荐指数
2
解决办法
5158
查看次数

我在哪里可以开始使用C语言中的Unicode友好编程?

所以,我正在研究一个普通的C(ANSI 9899:1999)项目,我正在试图弄清楚从哪里开始:Unicode,UTF-8和所有爵士乐.

具体来说,它是一个语言解释器项目,我有两个主要的地方,我需要处理Unicode:读取源文件(表面上支持Unicode标识符的语言等),以及'字符串'对象.

我熟悉所有关于Unicode,UTF-7/8/16/32和UCS-2/4的明显基础知识,等等......我主要是寻找有用的,特定于C的(也就是说,请没有C++或C#,这就是之前在SO上记录的所有资源)关于实现Unicode友好的东西的"后续步骤"的资源......在C.

任何链接,联机帮助页,维基百科文章,示例代码都非常受欢迎.我还将尝试在原始问题中维护此类资源的列表,以供稍后发生的任何人使用.


c string unicode encoding unicode-string

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

通过utf8多字节字符串向后迭代

我使用这个函数的略微修改版本is_utf8 /sf/answers/72224141/从字符数组中提取UTF8序列,返回序列及其中的字节数,以便我可以在此处迭代字符串办法.

但是我现在想要在字符串()上向后迭代char *.做这个的最好方式是什么?


我的猜测是尝试将字符串的最后四个,三个,两个和一个字节分类为utf8(四次)并选择最长的字节.

但是,utf8是否具有暧昧的情况?例如可以aaaabb解析为aaaa.bb也可以(向后)解析为aa.aabb其中aa,aaaa,bbaabb是有效的UTF8序列?

c string iteration utf-8

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

C中的UTF8处理

我对UTF8有基本的了解:代码点具有可变长度,因此"字符"可以是8位,16位甚至更长.

我想知道的是,如果C语言中有一些示例代码,库等与UTF8字符串类似,就像CEg中的标准库那样告诉字符串的长度等等.

谢谢,

c unicode utf-8

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

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

如何轻松检测字符串中的utf8编码?

我有来自其他程序的数据填充的字符串,这些数据可以是UTF8编码.所以,如果不是我可以编码为UTF8,但在C++中检测UTF8的最佳方法是什么?我看到了这个变种/sf/...但是有评论说这个解决方案没有100%检测.因此,如果我对已经包含UTF8数据的UTF8字符串进行编码,那么我将错误的文本写入数据库.

所以我可以使用这个UTF8检测:

bool is_utf8(const char * string)
{
    if(!string)
        return 0;

    const unsigned char * bytes = (const unsigned char *)string;
    while(*bytes)
    {
        if( (// ASCII
             // use bytes[0] <= 0x7F to allow ASCII control characters
                bytes[0] == 0x09 ||
                bytes[0] == 0x0A ||
                bytes[0] == 0x0D ||
                (0x20 <= bytes[0] && bytes[0] <= 0x7E)
            )
        ) {
            bytes += 1;
            continue;
        }

        if( (// non-overlong 2-byte
                (0xC2 <= bytes[0] && bytes[0] <= 0xDF) &&
                (0x80 <= bytes[1] …
Run Code Online (Sandbox Code Playgroud)

c++ windows string encoding utf-8

3
推荐指数
2
解决办法
9896
查看次数