UTF-8 字符计数

2023-11-30

我正在编写一些程序来计算文件中 UTF-8 字符的数量。我已经编写了基本代码,但现在,我陷入了应该计算字符的部分。到目前为止,这些是我所拥有的:

文本文件里面有什么:

黄埔炒蛋
你好
こんにちは
여보세요

到目前为止我编写的代码:

#include <stdio.h>

typedef unsigned char BYTE;

int main(int argc, char const *argv[])
{
    FILE *file = fopen("file.txt", "r");
    if (!file)
    {
        printf("Could not open file.\n");
        return 1;
    }
    int count = 0;

    while(1)
    {
        BYTE b;
        fread(&b, 1, 1, file);
        if (feof(file))
        {
            break;
        }
        count++;
    }
    printf("Number of characters: %i\n", count);

    fclose(file);

    return 0;
}

我的问题是,如何对计算 UTF-8 字符的部分进行编码?我尝试在 GitHub 和 YouTube 中寻找灵感,但还没有找到任何适合我的代码的东西。

编辑:最初,此代码打印文本文件有 48 个字符。但考虑到UTF-8,它应该只有18个字符。


See: https://en.wikipedia.org/wiki/UTF-8#Encoding

每个 UTF-8 序列包含一个起始字节和零个或多个额外字节。 额外字节总是以位开头10并且第一个字节永远不会以该序列开始。 您可以使用该信息仅计算每个 UTF-8 序列中的第一个字节。

    if((b&0xC0) != 0x80) {
        count++;
    }

请记住,如果文件包含无效的 UTF-8 序列,这将会中断。 此外,“UTF-8 字符”可能有不同的含义。例如“

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UTF-8 字符计数 的相关文章

  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 如何使用 NPOI 按地址(A1、A2)获取 Excel 单元格值

    我有一个 Excel 单元格地址 例如 A1 A2 如何使用 C 中的 NPOI 框架以编程方式访问此单元格 我找到的一些 Java POI 示例代码 CellReference cr new CellReference A1 row my
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您

随机推荐

  • firebase 数据库按值排序工作错误

    所以我有一个商店数据库 每个商店的名称前面都有一个数字 它们以随机顺序添加 但我希望它们按从 1 到 213 的顺序显示 我的问题是当我使用orderbyvalue 它显示它们就像 1 Store 10 Store 11 Store 12
  • AWS Cli 与不兼容 DNS 的存储桶同步

    有没有办法使用 AWS 命令 行将本地文件夹与包含句点 的存储桶同步 如果我这样做 aws s3 sync local folder s3 files domain com backup 我收到此错误 致命错误 名为 files domai
  • 为什么 SomeStruct() is AnyObject 返回 true? [复制]

    这个问题在这里已经有答案了 我对 AnyObject 的用法有点困惑 让我举几个例子 任意对象 NSObject is AnyObject true 如预期 class MyClass MyClass is AnyObject true 如
  • ASP.NET 忽略 Web.config 中的 IE7 兼容模式标记

    我的 Web config 文件中有以下部分
  • 如何使用 ASP.NET VB 以编程方式取消 Outlook 会议?

    我可以以编程方式创建一个会议请求 该请求通过代码发送给用户并显示在 Outlook 邮件中 用户可以在其中接受请求 如果接受 约会将显示在他们的 Outlook 日历上 但我无法弄清楚如何以编程方式取消同一事件 下面的代码是我用来发送会议邀
  • 优步 API iOS OAuth 2.0

    我试图制作一个 iOS 它将使用 Uber API 来完成诸如打车之类的事情 我正在尝试在 iPhone 上实现 OAuth 2 0 而不使用任何服务器端帮助 那可能吗 有人这样做过吗 以下是一些参考 优步身份验证 https develo
  • 如何处理多个可能的值进行查询?

    我正在构建一个 MVC 应用程序 用户可以在其中使用大量过滤器来准确获得他想要的内容 以下是基于控制器方法的这些过滤器的概述 GET Card SearchIndex public ActionResult SearchIndex stri
  • 本地 Firebird 数据库复制/同步到在线数据库

    我正在寻找如何将数据从本地 firebird 数据库同步到在线数据库的提示 很少评论 在本地计算机上 我使用销售软件将数据保存在 firebird db 上 有互联网连接 但我想避免直接数据库访问 因为晚上 9 点后电脑将被关闭 我想创建一
  • PHP 邮件的替代方案

    和 关联之前的一个问题我正在寻找一种替代方法 将订单从我的网站发送到我公司处理订单的部门 目前我使用 PHP mail 但这经常会出现问题 出现大的延误 PHP mail 是否有替代方案pushes订单到我公司 所以我不想对网站进行民意调查
  • 从 git 跟踪中删除文件夹

    我需要从跟踪中排除一个文件夹 名称上传 我试着跑 git rm r cached wordpress wp content uploads 之后我添加了 gitignore 的路径 wordpress wp content uploads
  • 具有自定义阴影的 NSWindow

    我想在 NSWindow 对象上绘制自定义阴影 有没有办法通过将自己的 NSShadow Object 传递给 NSWindow 来做到这一点 或者一个 私有 方法 我可以在其中放置我自己的绘图代码 Thanks 不 您不应该改变窗口的外观
  • CSS中是否可以选择具有特定内容或属性的元素?

    是否可以选择具有特定内容的元素 例如在 footer我有多个所以我无法使用 footer gt a 我可以只选择那个吗 a 如果 footer 有 a Top of Page a 但不是所有的 a 有没有跨浏览器的方式来选择这样的 如果我理
  • 分发 Perl 应用程序

    我最近创建了一个小型 Perl 应用程序 它使用了一些需要通过 CPAN 安装的非核心模块 有没有一种方法可以分发应用程序 并能够检查是否安装了所需的模块 如果没有安装 则从 CPAN 中提取它们 我想我正在寻找类似于 CPAN 自动依赖项
  • django 分页查询的下一个和之前链接

    我正在尝试为 Django 制作一个搜索表单 它是一种典型的搜索形式 然后返回匹配项表 我希望对返回的表进行分页 问题出在 上一个 和 下一个 按钮上 返回查询的链接位于 records search query a 搜索样本是a 该页面输
  • Twig - 如何随机化数组中的项目并循环它们?

    如何随机化数组中的项目并循环它们 for item in article resources shuffle slice 1 endfor 我收到此错误 第 30 行 partials content twig 中未知的 shuffle 过
  • 通过触摸在贝塞尔曲线路径上旋转精灵 - Cocos2D/Box2D

    我有一个可以通过触摸旋转的箭头 我想知道是否可以沿曲线旋转箭头 我做了一些研究 我认为它被称为贝塞尔路径 是否可以使用此代码在贝塞尔曲线路径上旋转精灵 如果可以 我将如何合并它 UITouch touch touches anyObject
  • 将 Fragment 替换为后退按钮上的另一个片段

    我试图覆盖后退按钮 因为当我按下时它会关闭我的应用程序 我有不同的片段 片段 A 索引 当我按后退按钮时 它将关闭应用程序 片段B 当我按后退按钮时 它将返回到片段A 片段C 当我按后退按钮时 它将返回到片段A 我有我的主要活动 它管理我的
  • 如何从 shell 中截取网页的某个部分的快照?

    我有一个网页的一部分 我需要在给定的时间间隔拍摄 gif 快照 快照需要是全页面大小分辨率 但是正如我所说 它只会到达页面上的某个位置 在本例中它位于表格之后 获取这样的页面快照图像的最佳方式是什么 我想把它扔到一个 cron 作业中然后忘
  • Internet Explorer 中的 Javascript 命名函数表达式

    为什么以下代码在 Internet Explorer 中不起作用 到目前为止我只在 IE8 中进行了测试 function this foo function foo foo prototype bar function return ba
  • UTF-8 字符计数

    我正在编写一些程序来计算文件中 UTF 8 字符的数量 我已经编写了基本代码 但现在 我陷入了应该计算字符的部分 到目前为止 这些是我所拥有的 文本文件里面有什么 黄埔炒蛋 你好 到目前为止我编写的代码 include
Powered by Hwhale