代码-中文字符拆分显示乱码问题

问题描述

中文字符拆分显示乱码问题

程序主要代码:
int main (int argc, char argv[])
{
aes256_context ctx;
uint8_t key[32];
char *filename1="/home/phaeton/user/my_code/source.txt";
char *filename2="/home/phaeton/user/my_code/desc.txt";
int fctl1=0,fctl2=0;// 文件描述符
int tmp,i=0,j=0;
char buf[4096];
char buf1[16];
memset(buf,0,sizeof(char)*4096);
memset(buf1,0,sizeof(char)*16);

/ put a test vector */
for (i = 0; i < sizeof(key);i++) key[i] = i;
DUMP("key: ", i, key, sizeof(key));
printf("---
");

fctl1=open(filename1,O_RDONLY);
  if(fctl1 == -1)
  {
       printf("open file error check the file state");
       return 0;
  }

  fctl2=open(filename2,O_WRONLY||O_APPEND||O_CREAT,777);
  if(fctl2 == -2)
    {
       printf("create file error ");
       return 0;
  }     

  tmp=read(fctl1,buf,4096);
  printf("%d",tmp);
  printf("
");
  printf("%s
",buf);
//处理buf[]中的文件数据,只能16位为一个单位进行加密
for(i=0;i<tmp;i++)
{
    printf("%c",buf[i]);
}
  printf("
");

  for(i=0;i*16<tmp;i++)
  {
    for (j=0;j<16;j++)
    {
          printf("%c",buf[j+16*i]);
    }
    printf("
");
    /*aes256_init(&ctx, key);
  aes256_encrypt_ecb(&ctx, buf1);
    DUMP1("enc: ", j, buf, sizeof(buf1));

    aes256_init(&ctx, key);
    aes256_decrypt_ecb(&ctx, buf1);
    DUMP1("dec: ", j, buf, sizeof(buf1));
    aes256_done(&ctx);*/
  }

return 0;

} /* main */

文件内容:
为什么会出现乱码 真是奇了怪了 整体输出没有问题
拆分开输出 就形成乱码
搞了一天了没搞明白

运行结果:

求大神指导,实在搞不定了!

解决方案

5.6java中显示中文字符乱码的问题
osg 中显示中文字符出现乱码问题
字符显示乱码问题

解决方案二:

乱码就说明了要么是你拆分前后使用的字符编码是不一样,要么是你所使用的系统里中文字符不是16位

时间: 2024-12-10 01:06:50

代码-中文字符拆分显示乱码问题的相关文章

java-当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?

问题描述 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 怎么才能解决问题,跟jdbc driver Manager的设置有关系吗? 解决方案 数据库字符集 与 页面编码 都使得 是 uft-8?得统一 解决方案二: 建议编码格式采用UTF-8的格式 解决方案三: 在使用数据的每一个节点上,其编码方式必须要一致否则就会出现乱码.特别是使用MySQL时,客户端,连接器.数据库

博客代码编辑-html 代码编辑中文怎么会显示乱码呢?

问题描述 html 代码编辑中文怎么会显示乱码呢? 原文是英文,但是直接再代码中翻译成中文添加上去就会变成乱码,新手完全不懂为什么,请大神们赐教! 解决方案 要在html 的page属性里面设置编码方式:UTF-8<%@ page language=""java"" contentType=""text/html; charset=UTF-8"" pageEncoding=""UTF-8"&

编码-iOS开开发 post 的方式提交 中文字符串 后台显示乱码

问题描述 iOS开开发 post 的方式提交 中文字符串 后台显示乱码 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); [_abbreviationBtn.titleLabel.text dataUsingEncoding:enc]; NSString *string = [[NSString alloc]initWithData:[_abbrevi

在C#和MySQL中存取中文字符时避免乱码的方法_Mysql

当用到socket来进行网络程序开发时,大多数情况下会遇到中文字符的发送与接收,这时若对发送的字符串用默认的方式进行处理,则一般会得到一堆乱码. 由于中文字符采用双字节表示,所以对含有中文的字符串的处理一定要按UNICODE编码方式进行处理,也就是说,使用socket发送中文字串时要事先将字串转成UNICODE格式的. 下面是简单的socket通信的代码. //服务端代码 try { IPAddress MyIP = IPAddress.Parse("127.0.0.1″); TcpListen

php字符串与中文字符拆分方法

果直接用php教程函数"str_split"来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的.但是我们可以建立新的函数先把字符转成ascii值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用php函数"join"在字符间插入百分号 <?php function str_split_utf8($str){  $split=1;  $array=array();  for($i=0;$i<strlen($str)){  

php实现中文字符截取防乱码方法汇总_php技巧

大家在自己的程序中相信都会经常用到截取字符串吧,但是往往遇到截取中文字符串的时候会遇到乱码的问题.很是让人头疼,接下来介绍两种方法防止截取中文字符串的时候出现乱码的问题. 首先第一种,自己写好的一个函数方便使用 利用这个函数截取就不会出现乱码了. /** * 支持中文字符串截取 */ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ switch($charset){ case 'utf

01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置

          Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0120议.使用Xshell可以快速方便的管理Linux主机等     但是有时我们使用,经常遇到.linux下中文显示乱码的情况,其实解决办法很简单,下面跟着小编来看看,如何解决XShell连接linux中文乱码 工具/原料     Linux系统(Centos)  Xshell Xshell连接L

解决putty SSH连到CentOS显示乱码问题

SSH连到CentOS显示乱码解决办法 为了让putty显示正常,需要做如下操作: 1. 在CentOS上设置 /etc/sysconfig/i18n为如下内容 LANG="zh_CN.UTF-8" 2. 在putty的PuTTY Configuration窗口中设置如下: 1. Window->Appearance->font setting 设置字体为:新宋体,10号   2. Window->Translation->Remote character se

c语言-C编程输出中文为什么显示乱码

问题描述 C编程输出中文为什么显示乱码 从词典文件中读取数据,输出的时候为什么显示乱码? 代码如下: #include 2 #include 3 4 int main() 5 { 6 FILE *fp = fopen("text.txt","r"); 7 char english[32],chinese[64],attribute[8]; 8 int i=0,j=0,k=0; 9 int flag_null = 0, flag_p = 0; 10 while(!fe