【救急】邮件内码转换问题

Derekfan 2008-11-10 11:16:37
各位大侠,各位看官:
1、请问在邮件中的gb2312的编码格式如何能够在繁体中显示?
2、utf-8的编码格式能够从根据不同的系统进行自动的正确显示。
3、unicode是否在简繁体系统中正常显示呢?如何转码问题?

问题多多?希望大家给点建议!!!
...全文
267 29 打赏 收藏 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2008-11-12
  • 打赏
  • 举报
回复
两种多字节字符串相互转换需要先转成Unicode,再从Unicode转成目标字符集。
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
谢谢 jeenyvenus
用户 昵称 2008-11-12
  • 打赏
  • 举报
回复
里面涉及了一个u2s函数,将ucs2的流转成ascii的。

char *
u2s( unsigned char *buf, unsigned short length, char *tmpbuf )
{
int i;
char *p;
char s[ 16 ] = "";
wchar_t wstr[ 1 ];
CString mstr;
int l, curlen;

*tmpbuf = 0;
curlen = 0;
mstr = _T( "" );

for( i = 0; i < ( int )length; i += 2 )
{
p = ( char * )wstr;
*p = *( buf + 1 ); //high
*( p + 1 ) = *buf; //low
mstr = wstr;
memset( s, 0, sizeof( s ) );
strcat( s, ( const char * )mstr );
if( *buf ) //if low is not 0
{
s[ 2 ] = 0;
l = 2;
}
else
{
s[ 1 ] = 0;
l = 1;
}

strcat( tmpbuf + curlen, ( const char * )s );
curlen += l;

buf += 2;
}

return tmpbuf;
}

用户 昵称 2008-11-12
  • 打赏
  • 举报
回复
关于utf8转ascii

char *
utf82ascii( unsigned char *utf8, unsigned short length, char *buf )
{
int i = 0;
unsigned short a;
unsigned char b;
char *p = buf;
unsigned char t[ 2 ];


do
{
if( 0xe0 == ( *utf8 & 0xf0 ) &&
0x80 == ( *( utf8 + 1 ) & 0xc0 ) &&
0x80 == ( *( utf8 + 2 ) & 0xc0 ) )
{
//3个字节
b = *utf8;
b &= 0x0f;
a = b;

a <<= 6;
b = *( utf8 + 1 );
b &= 0x3f;
a |= b;

a <<= 6;
b = *( utf8 + 2 );
b &= 0x3f;
a |= b;

t[ 0 ] = ( a >> 8 ) & 0xff;
t[ 1 ] = ( a & 0xff );
u2s( t, 2, p );

p += 2;

i += 3;
utf8 += 3;
}
else if ( 0xc0 == ( *utf8 & 0xe0 ) &&
0x80 == ( *( utf8 + 1 ) & 0xc0 ) )
{
//2个字节
b = *utf8;
b &= 0x1f;
a = b;

a <<= 6;
b = *( utf8 + 1 );
b &= 0x3f;
a |= b;

t[ 0 ] = ( a >> 8 ) & 0xff;
t[ 1 ] = ( a & 0xff );
u2s( t, 2, p );

p += 2;

i += 2;
utf8 += 2;
}
else
{
//1个字节
*( p++ ) = *( utf8++ );

i++;
}
} while ( i < length );
*p = 0;

return buf;
}

Derekfan 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 Amuro1987218 的回复:]
那是数据库存贮方面的问题吧,存入取出后2进制数据发生改变自然不行
[/Quote]
我在debug的时候在就已经看到的是乱码,问题好玄???

真不知道别人是怎么在繁体中显示简体的!!!
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 Amuro1987218 的回复:]
那是数据库存贮方面的问题吧,存入取出后2进制数据发生改变自然不行
[/Quote]
目前我使用的数据库是sqlite
Amuro1987218 2008-11-12
  • 打赏
  • 举报
回复
那是数据库存贮方面的问题吧,存入取出后2进制数据发生改变自然不行
yjgx007 2008-11-12
  • 打赏
  • 举报
回复
从utf8转到其它内码, 中间先转为unicode,再转向其它内码.
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 Amuro1987218 的回复:]
被你刚发来的死信弄晕了。
看来还是内码转换问题,我建议发送端文字转为unicode或是utf8,在阅读端直接用该编码查看。
[/Quote]
我转为utf-8码值后,存入数据库后,再从数据库中取出来,结果看到无法认识的乱码。
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
目前在繁体系统的outlook中在接收邮件的时候我们也会看到在主题中部分字是无法显示的,但是为什么他的内容还是能够显示正常呢?
Amuro1987218 2008-11-12
  • 打赏
  • 举报
回复
被你刚发来的死信弄晕了。
看来还是内码转换问题,我建议发送端文字转为unicode或是utf8,在阅读端直接用该编码查看。
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 Amuro1987218 的回复:]
你说的是GB2312编码,繁体转换为简体?

LCMapString(0x0804,LCMAP_SIMPLIFIED_CHINESE, 繁体文字, -1, 简体文字, iLen);
[/Quote]
现在是遇到这样的事情,邮件含有简体字在简体系统中发到放到繁体系统中的时候,我先是使用gbk转为utf8,然后再使用utf8转为big5,结果发现很多字是无法显示的。如果我想简体字能够在繁体系统中正常显示的话,我应该要转为什么编码呢???
Amuro1987218 2008-11-12
  • 打赏
  • 举报
回复
你说的是GB2312编码,繁体转换为简体?

LCMapString(0x0804,LCMAP_SIMPLIFIED_CHINESE, 繁体文字, -1, 简体文字, iLen);
Derekfan 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 cnzdgs 的回复:]
两种多字节字符串相互转换需要先转成Unicode,再从Unicode转成目标字符集。
[/Quote]
谢谢
Derekfan 2008-11-11
  • 打赏
  • 举报
回复
up
Derekfan 2008-11-10
  • 打赏
  • 举报
回复
各位老大你们能否说得清楚些呀?很茫然耶!
cnzdgs 2008-11-10
  • 打赏
  • 举报
回复
首先系统中要相应的字体。
试试SetThreadLocale。
Unicode是可以正常显示的,转码时只要给对codepage即可。
yjgx007 2008-11-10
  • 打赏
  • 举报
回复
用utf-8
用户 昵称 2008-11-10
  • 打赏
  • 举报
回复
通用的做法是都用unicode。
Derekfan 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jennyvenus 的回复:]
int s2u(const char* pSrc, BYTE* pDst, int nSrcLength)
{
int nDstLen = 0;
int nOffset = nSrcLength;
int nTotal = 0;
WCHAR wchr[ 4096 ];

try
{
while( nOffset>0 )
{
nDstLen = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nOffset, wchr, 4096);

////////////////////
我没做过纯unicode的程序,只是听大家说unicode版本的程序到哪里都一样。前面的代码是ascii转unicode的。

[/Quote]





謝謝你
加载更多回复(9)
文末附数据集可视化效果图。 【数据集概况】 · 检测类别(中文):[矿石0(0), 矿石1(1), 矿石10(10), 矿石11(11), 矿石2(2), 矿石3(3), 矿石4(4), 矿石7(7), 矿石8(8), 矿石9(9), 模组矿石(modore), 普通矿石(ore)] · 训练集:1383 张 · 验证集:130 张 · 测试集:66 张 · 总计:1579 张 该数据集聚焦于典型游戏内资源采集场景,以俯视角呈现冰雪覆盖的虚拟地形环境,包含多种类型矿石与特殊资源点。数据集中各类矿石分布密集且形态多样,标注清晰,能够有效支持对复杂背景下的小目标识别与分类任务,具备较高的训练价值和实际应用潜力。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9185** mAP50-95 | 0.5810 Precision | 0.9468 Recall | 0.8648 train/box_loss | 1.2381 train/cls_loss | 0.4081 val/box_loss | 1.5489 val/cls_loss | 0.5361 【训练过程分析】 100 轮训练后 mAP50 达到 0.9185,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。但 mAP50-95 为 0.5810,和 mAP50 差距 0.34,定位精度仍有优化空间。 【模型性能评估】 Precision 0.9468、Recall 0.8648...
内容概要:本文提出一种融合细菌觅食优化算法(BFOA)、蚁群算法(ACO)与长短期记忆网络(LSTM)的混合智能算法A-ACO-LSTM,用于解决无人机在复杂三维环境中的路径规划问题。通过三维栅格地图建模,结合LSTM对航段风险的预测能力、BFOA在连续空间中的全局优化能力和ACO在离散栅格路径上的搜索优势,构建了“先学习—再优化—后修正”的协同框架。系统综合考虑路径长度、障碍碰撞、飞行风险、转弯平滑度和垂直爬升等因素,设计多目标归一化代价函数与动态权重机制,在保证飞行安全的前提下提升路径质量。代码基于MATLAB实现,包含环境生成、LSTM训练、BFOA连续优化、ACO离散搜索、路径融合与三维可视化等模块,支持参数配置、结果复现与工程扩展。; 适合人群:具备一定算法基础和MATLAB编程经验,从事无人机路径规划、智能优化算法或人工智能应用研究的研发人员及研究生。; 使用场景及目标:①应对城市楼宇、山地地形等复杂三维障碍环境下的无人机自主导航;②实现低能耗、高安全性、强鲁棒性的飞行路径规划;③为多源算法融合与深度学习辅助优化提供技术参考与实现范例; 阅读建议:建议结合完整代码与GUI界面深入理解各模块交互逻辑,重点关注LSTM风险预测与两种群智能算法的耦合机制,可通过更换训练数据、调整环境参数进行二次开发与性能测试。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧