G's profile我曾经是好孩子PhotosBlogListsMore Tools Help

Blog


    May 29

    谈论 UNICODE/Wide Characters handling in C++

     

    引用

    UNICODE/Wide Characters handling in C++

    I was bitten again.

    Life was never meant to be easier, and it's tougher when you come to deal with wide characters in C++ with wfstream, wcout or any other WIDE versions of standard I/O facilities.

    Two Rule of Thumbs:

    #1 Unicode files must be opened as binary

    Example:

    std::wifstream xmlFile(m_FileName, ios::binary);

    std::wofstream xmlFile(m_FileName, ios::binary);

    #2 when working with languages other than English, wifstream/wofstream must be imbued with a non-default facet to read from or write to a real UNICOE file, or else wofstream ends up writing an ANSI file.

    An explanation is available from here .

    Example:

      1:  wstring ws(L"this is a wide string"); 
      2:  wofstream of_imbued;
      3: 
      4:  IMBUE_NULL_CODECVT(of_imbued); 
      5: 
      6:  of_imbued.open(L"c:\\imbued.txt", ios::binary);
      7:  of_imbued<<ws.c_str(); 
      8: 
      9:  wofstream of_not_imbued;
     10:  of_not_imbued.open(L"c:\\not_imbued.txt", ios::binary);
     11:  of_not_imbued<<ws.c_str();
     12: 

    Outputs of the above code:

    Two imbue facilities are available:

    - Boost Library

    - imbue_null_codecvt (the one used in above example)

    There's also a classical  C way to write UNICODE files:

      1: wchar_t myWString[] = L"Some strange characters." 
      2: fwrite(myWString, sizeof(wchar_t), sizeof(myWString)/sizeof(wchar_t), 
      3: myFile ); 

    However, it is not portable.

    References:

    1. Unicode Implementation

    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/ffe0912d1462d7a5/7601a62008fdd25a?lnk=st&q=wfstream+fstream+cout+wcout&rnum=6&hl=en#7601a62008fdd25a

    1. Unicode in C++

    http://groups.google.com/group/comp.lang.c++/browse_thread/thread/f4a6a434b0453187/1edc2bc1f4187597?lnk=st&q=wfstream+fstream+cout+wcout&rnum=3&hl=en#1edc2bc1f4187597

    1. how to read a Unicode file with fstream?

    http://groups.google.com/group/microsoft.public.vc.stl/browse_thread/thread/45d7520ec3ad3f51/d57b41e9abb20117?lnk=st&q=wfstream+fstream+cout+wcout&rnum=2&hl=en#

    1. A very puzzling problem: cout vs. wcout, fstream vs. wfstream

    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/37c3e24861ca09e3/78fe0aeed7b728de?lnk=st&q=wfstream+fstream+cout+wcout&rnum=1&hl=en#78fe0aeed7b728de

    1. Upgrading an STL-based application to use Unicode

    http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp

    January 30

    在生活

    我甚至不能说服自己,这样是快乐的。

    January 23

    阳光下

    人的大脑总是要被占着的。不是被生活的热情充满,就会被无聊的空虚占有。

    时时刻刻都在模仿别人,时时刻刻都在学习所谓的先进,最后停下来的时候发现,自己已经面目全非。想哭都不知道用怎样的表情。

    那天醒来的时候好像没有很痛,一切都像是在梦里撕杀,只留下心悸,没有伤痕。

    这些年来一直很无聊,总是看着别人轻而易举地拿走自怎么努力也得不到的东西,越是在意,就越会失望。

    大家都在做着自己的事情,看起来都做的很好,这样就有一个错觉,好像我是个托后腿的。也许不是什么错觉,或许是事实。

    明天的明天的明天的时候,还是想着昨天的昨天的昨天的事。一直都忘不了。

    我的梦想在哪里我也不知道,大家好像都有自己的梦想。没有梦想怎么生活,没有生活哪来梦想 。这个“鸡生蛋蛋生鸡”的问题很是让人讨厌。

    有种直觉,哪里不对,但究竟是哪里却不知道。真TMD想骂人,好像这样才可以松下来。

    不一定吧。习惯这句话了。好像我生活里没有什么可以确定。这里的小孩太聪明了,已经没有什么一定的了。

    长大了么?希望还是不要了,已经不想再长大了。昨天的昨天的昨天的事。

    November 14

    无聊的时候

    一梦三四年 醒来的时候 原来是这么的无聊啊 好多事情等着去做 再也不能像小时候一样 玩赖不去做任何事情 那时候做事情是没有代价的 而现在 I'm paying the price myself
    今天就很无聊 不知道想去做什么 我在学习黑客技术  这是唯一能让我忘了一切的东西 唯一能让我沉溺其中的东西
    忘掉 然后 思考
    August 29

    Lost

    还是看不到很远的地方 已经许久 还是没有梦想 实现 开始怀疑自己 怀疑 怀疑 不可理解的怀疑 那一天看到了亦小桉的大学生活
    我开始失落 开始放弃 开始努力 开始像一个愤青一样 开始变得自己也不认识 我不知道怎么过今后的日子 我的生活真的会这样结束么
    以前的梦想一直在眼前 一直在住前 好像很近 好像很远 不知道 不觉得 自己已经没有力气了 怎么了 这个世界 不喜欢这个世界
     
    自己也不认识的世界 以前不是这样的 我也不知道为什么会这样 这个世界已经不是以世界了
    我也没办法了 路在何方了
     
     
     
    August 26

    什么也不说

    不知道自己还可能撑多久
     
    那年夏天
    长大以后 现在的我常常会寂寞
    偶尔缱绻 星星闪烁 剩最亮一颗
    往事如风 划过夜空 你的歌
    跳动音符 熟悉旋律 谁来合
    长大以后 现在的我 忘记了快乐
    人来人去 留在身边 的朋友不多
    那些天真 纯纯的笑 哪去了
    洁白翅膀 美丽天使 不见了
    曾经以为 世界很美
    没人流眼泪
    吹熄蜡烛 许个心愿
    全都会实现
    原来的我 怀念从前
    是因为太留恋
    懵懂的岁月中
    只收藏了简单的笑脸
    长大以后 现在的我 忘记了快乐
    人来人去 留在身边 的朋友不多
    那些天真 纯纯的笑 哪去了
    洁白翅膀 美丽天使 不见了
    曾经以为 世界很美
    没人流眼泪
    吹熄蜡烛 许个心愿
    全都会实现
    原来的我 怀念从前
    是因为太留恋
    懵懂的岁月中
    只收藏了简单的笑脸
    我愿相信 时间倒退
    记忆的最美
    合起双手 闭上双眼
    再许下心愿
    在某一天 回到从前
    让他们都出现
    但他们没改变
    让时钟停在 那年的夏天
     
    August 12

    天使的生日礼物

    天使和魔鬼下了赌注 我是中间人 或说是 筹码 一部分 当然 还有我的 未来
    我不知道他们为什么会找到我 但是 我就这么不拒绝地答应了 手里 拿着
    潘多拉 魔盒 他们说你看一下 其实 这是个 圈套 一个大大的 是天使和魔鬼一起放的
    这样 打开之后 我就成了 他们打赌的 见证人 没有选择 还有我我的 明天
    这样一下 我就成了筹码 不知不觉得 就这样 打开了 一个大大的 礼物
    他们一 起 送我的 他们说 还有一个礼物 明年生日的时候会给我 就在生日那一天
    而且 这个赌注的赢家会决定 明年生日礼物是什么 他们让我期待着
    他们还说 我可以选择帮一个人 而且我帮谁谁就会胜出 一定会胜出
    天使说 他的礼物会很好 如果我帮他的话 魔鬼说他的礼物会很不好 但是
    魔鬼还说他会诱惑我的 这样我就不会去帮天使
    天使一面要赌 一面还要保护我 很累 因为有时候 魔鬼的诱惑是不能发现 拒绝的
    我说 没事 天使专心就好了 我会做好的 不会让魔鬼赢掉的 呵呵
    天使同意了 所以我在 一个又一个 的 痛苦中 我在相信中 也在失望中 一点一点
    不过 大家很相信 所以 很期待明年 生日那个礼物
    August 05

    丢掉的记忆

    那个人就真的消失了
    四年级的时候我还记得我们的奇多圈
    还有那个大大的 红红的 透明的 画着北京的那个
    你还拿着吧 还在吗 还记得我吗 现在还好吗
     
    你改名了吧
    在网页上已经找不到你的记录
    这个世界真的再也没了吗
    四年级的的突然转学什么都没了
    我的记忆中 那次转学怎么什么都没留下
    难道这样消失了吗
    我的记忆只能到这儿了吗
     
    我的记忆只锁定了那一个下午
    下课 我们在外面的台阶上 玩奇多圈
    我们都笑得很开心
    只记得和你放学的时候走过一次
    你在最上面的台阶 我在最下面的
    记忆只有这么多了
    只能到这儿了吗
     
    找不到了么
    缘分真的转学了么
    见了你还会记得我吗
     
    还记得吗
    ……
     
    July 31

    爸爸妈妈

    见了小学同学 很高兴还有小学的回忆
    其实小学同学是没有什么感情的
    但我们正好去了一样的高中 所以 还是很亲的
    在一起还是会想起小学的事情 但是都已经记不清楚了
    我们更多是谈论这几年的生活
    好像我们已经老到有资格去谈论人生回忆了
     
    每次都会很期待见面 总觉得这是我童年大大的回忆
    不要放手 要不 这些年就什么也没有了
     
    我们说起了父母 原来天下的父母都是一样的啊 我们的父母会很在意子女的行踪 几乎到了不可以想像的地步 天天都会发短信问长问短 只要有一个短信不回 就会发现有二十多个末接电话 其实我们也知道 父母都是好意 但是北方大多是独生子女 所以父母会把所有的希望都压你的身上 也不管你怎么想 只要你有什么意见 他们就会用“为你好”的“幌子”挡回去 其实你也不能说什么 因为 他们确实是为了你好 但是 你就是无法接受他们的厚爱
    南方很多都是兄弟姐妹成群的 所以 父母会管的少一些 甚至大学开学时 孩子们会自己去买个包 带上衣服带上钱 一个人就出发了 她说她们宿舍的都受不了她父母去给她铺床
     
    而且我们的父母都会很猜疑 都会用大人的眼光去评价我们身边的朋友 他们已经习惯了社会的生活 已经习惯这个物欲横流的时代 但是 其实现在的小孩还是单纯的 和谁在一起只会跟着感觉走 觉得谁好 就会和谁在一起 更多都没有考虑过 也许以后我们会变 但是现在我们不会 能不能让我们单纯一会儿 以后我们也会变得功利 也会变得向钱看齐 但是至少现在我们什么都不会想 我们只会像个小孩子一样生活在一起 拜托 不要让我们生活在猜疑的世界里 至少让我们单纯地多活几年 那些复杂的想法你们不教我们也会学会的 只是个时间问题
     
     
    July 29

    我不是好孩子

    没有表达并不代表没有爱
    没有言语并不表示没有牵挂
     
    有些东东还是藏着好 不想说出来
     
    每个人在我周围都有不同的角色
    角色是没有分别的
    只是 我们的关系 不同
    所以 我们所能说的话 所能做的事 不同
     
    他们中 总会有反面角色
    演反面角色的 在我的生命中 总会想方设法打击我
    就像在电影中看到的一样 反面角色总是令人厌恶
    但是
    也会有正面的角色 也会有我的朋友
    他们在我的戏中责任就是 保护我
    而且就像电影中的一样
    故事的结局 总会是令人开心的
    总会是
    白马王子和美丽公主从此快乐地生活下去
     
    演戏么 总会有一些惊险的
    要不没有上座率我的生命中就没有角色了
     
    您也只是一个角色而已 我也只是一个角色 而已
    只不过 在我的生命中的 我的戏分是主角
    我们都不是导演 我们都不能决定什么
    我们只是做出努力的样子
     
    戏总会令人忘神
    这首歌是送给您的 您要是能听到
     
    真的爱你
     
    无法可修饰的一对手
    带出温暖永远在背后
    纵使罗嗦始终关注
    不懂珍惜太内疚
    沉醉于音阶她不赞赏
    母亲的爱却永未退让
    决心冲开心中挣扎
    亲恩总可报答
    春风化雨暖透我的心
    一生眷顾无言地送赠
    是你多么温馨的目光
    教我坚毅望着前路
    叮嘱我跌倒不应放弃
    没法解释怎可报尽亲恩
    爱意宽大是无限
    请准我说声真的爱你
    仍记起温馨的一对手
    始终给我照顾未变样
    理想今天终于等到
    分享光辉盼做到
    春风化雨暖透我的心
    一生眷顾无言地送赠
     
    对不起妈妈
    我不是好孩子
     
     
     
     
     
    July 28

    风中无泪

    还是这样 末日还没有过去
    世界末日不是只有一天么
    也许这不是末日 也是我根本没有经过末日
    只不过一个大大的 旋风
    过了以后 一片狼藉
    我一个人站在 这里
    一片废墟 透明天空 清新空气 美好的日出
    泪水还没浸出 风中依然干涩
     
    这里还有我的影子
    旋风之前的影子 一模一样
    映在那片田野上 背后有七彩的光
    黑色的影子还是黑色的
    现在
    我的影子后面
    什么都没有 伸出双手
    手掌空空 美丽的味道
     
    还有废墟压在你们身上
    我想移开
     
    我没有这个记忆 它不会成为我的记忆
     
    小小的我 小小的回忆
    不会承受 小小幸福
     
    这片废墟上 将会成长出
    我的小小幸福 在我的身影后面
    我还是小孩子 我的小小幸福
    在这里长出
     
     
     
     
     
     
    June 04

    没有人的房子

    就像一个买了却没有住的房子 没有尘土 却有冰冷
    其实一直不太习惯在网上写东东 有种不确定的感觉
    谁也不知道 我的文字 会去哪里 保存之后就不再是我的了
    它们在网上传来传去 来来回回 已经没有以前的感觉了
    这里没有人 以后也不会有 这里
    本来就是空的 以后还会是空的
    在这里 都是空的 什么也没有
    这个房子没有人 只有一个不为人知的鬼影在这里
    游荡 来来回回
    有时候 我们也许都需要一个 这样的房子
    这样一个空的地方 来透透气