标题:谁做过彩信打包程序
只看楼主
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
结帖率:100%
 问题点数:0 回复次数:5 
谁做过彩信打包程序
就是把图片、铃声、文字用smil布局然后打包成TMS的那种
做的过程中出现一些问题,有做过的朋友吱一声 共同探讨探讨
搜索更多相关主题的帖子: 彩信 打包 
2010-10-08 10:13
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
得分:0 
什么格式?什么问题?

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2010-10-08 14:29
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:0 
把图片、文字等元素以二进制形式存储在tms文件里。昨天做的时候出现tms文件内容格式异常的问题,今天解决了,跟重定义的文件名有关。
其中文字部分是先把文本存储在一个临时的txt文件里,没有进行任何的编码转换,文件生成后编码格式是UTF-8的。要求应该是ANSI的,但我进行编码转换后文件的编码格式是ANSI了没错,里面文字却是乱码。至于转换格式的代码,就是网上那些方法,都是一样的。现在我还在研究,会陆续贴出一些代码来
2010-10-09 13:48
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:0 
Mms.rar (9.67 KB)

这里边的smil文件用realplayer打开,txt文件生成的时候是UTF-8的,打开smil后可以看到是乱码。
但如果把txt文件另存为ANSI编码,就不存在乱码了。
txt的ANSI编码不就是windows下的gb2312吗?我在程序里把文本部分转成gb2312后存储,生成的txt文件编码还是utf-8。不知道怎么才能直接生成ANSI编码?
下面是转换格式的代码
程序代码:
        public string UTF8ToGB2312(string str)
        {
            try
            {
                Encoding utf8 = Encoding.GetEncoding(65001);
                Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
                byte[] temp = utf8.GetBytes(str);
                byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);
                string result = gb2312.GetString(temp1);
                return result;
            }
            catch (Exception ex)//(UnsupportedEncodingException ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
        }
        string txtContent = UTF8ToGB2312(txt);    //变量txt就是文本内容
        txtFileName = random() + ".txt";          //生成随机文件名
        if (!("tms")) { ("tms"); }
        FileStream fs_txt = new FileStream("tms\\" + txtFileName, FileMode.Create);
        StreamWriter sw_txt = new StreamWriter(fs_txt);
        sw_txt.WriteLine(txtContent);
        sw_txt.Close();

代码里有什么问题请指教
2010-10-09 14:11
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:0 
问题解决了,很简单,string txtContent = UTF8ToGB2312(txt);这句不要,只需要
程序代码:
Encoding f32 = Encoding.GetEncoding("gb2312");
StreamWriter sw_txt = new StreamWriter(fs_txt,f32);
sw_txt.WriteLine(txt);
sw_txt.Close();
这样就好了,生成的txt编码为ANSI
2010-10-11 14:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322221-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060148 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved