c++11 多国语言字符串处理方案

文本编码格式限定uft-8

#include <iostream>
#include <string>
#include <ostream>
#include <fstream>
#include <codecvt>
#include <locale>
#include <sstream>
#include <chrono>
using namespace std;// utf8格式string转wstring
static std::wstring stringtowstring(const std::string& input)
{std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;return converter.from_bytes(input);
}
// wstring转utf8格式string
static std::string wstringtostring(const std::wstring& input)
{//std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;return converter.to_bytes(input);
}// 获取当前时间戳
static int64_t C11GetTimeStamp()
{std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());auto tmp = std::chrono::duration_cast<std::chrono::milliseconds>(tp.time_since_epoch());return tmp.count();}// 文本输出文件名
std::string fileName = "log.txt";// 输出打印
void LOG_DF(const std::wstring& mlog)
{// wstring转换函数string utf8 = wstringtostring(mlog);// 打印std::locale::global(std::locale("C"));std::cout << utf8 << std::endl;std::locale::global(std::locale(""));// 写入文件std::ofstream log_f(fileName, std::ios_base::app);log_f << utf8 << std::endl;log_f.close();
}// LOG_D接口
#define LOG_D(log) {\if(1){\std::wstringstream ss;\ss <<L"["<< C11GetTimeStamp() <<L"][] " <<log << L" [" << __FILE__ << L":"<<__LINE__ << L"]";\std::wstring wstr = ss.str();\LOG_DF(ss.str());\}\
}int main()
{#ifdef __linux__setlocale(LC_ALL, "");
#elsestd::system("chcp 65001");
#endifstd::locale::global(std::locale(""));int x = 40;float y = 6.0;wstring str = L"this a test";wstring addr = L"127.0.0.1:2368";//LOG_INFO(u8"这是一个测试,Это тест.これはテストです,this is a test,Die bezeichnungen für den diskurs. " + to_string(x) + to_string(y));LOG_D(L"这是一个测试,Это тест.これはテストです,this is a test, Das ist ein Test.\xCC\xCC\u00df\u6c34\U0001f34c" << x << y);LOG_D(L"演讲的名字。название лекции.スピーチの名前。The names for the discourse.Die bezeichnungen für den diskurs.\xCC\xCC\u00df\u6c34\U0001f34c" << x << y);LOG_D(L"演讲的名字。название лекции.スピーチの名前。The names for the discourse.Die bezeichnungen für den diskurs.\xCC\xCC\u00df\u6c34\U0001f34c" << str << addr);return 0;
}

打印输出:

[1,653,288,712,474][] 这是一个测试,Это тест.これはテストです,this is a test, Das ist ein Test.ÌÌß水												

c++11 多国语言字符串处理相关推荐

  1. VMware Workstation 11.0.0多国语言(含简体中文)+永久激活密钥

    2019独角兽企业重金招聘Python工程师标准>>>  VMware Workstation 11.0.0多国语言(含简体中文)+永久激活密钥 (2014-12-03 08:2 ...

  2. python批量替换app多国语言翻译字符串

    背景: 开发的APP需要导入多国语言,研发需要将翻译后的字符串复制到values下的stings.xml中,六国语言复制的工作量太大,一开始想着使用Excel的批量替换,百度了一下给office装了个 ...

  3. Android多国语言翻译 字符串目录详解

    Android多国语言翻译 国际化 命名规则 values-[ 语言简称]-r[地区] 常用语言 values #默认语言 找不到对应语言就会使用这里 values-ar # 拉伯语 Arabic v ...

  4. WP7多国语言支持 from:http://blog.csdn.net/lee353086/article/details/6260676

    WP7多国语言支持 Kagula 2011/3/17 前言 本文阅读对象是有一定Visual Studio 2010使用经验的程序员. 这里通过一些示例介绍如何让你的Windows Phone7 Wi ...

  5. 引擎设计跟踪(九.8) Gizmo helper实现与多国语言

    最近把gizmo helper的绘制做好了. 1.为了复用代码,写了utility来创建sphere, cube, cylinder, plane, ring(line), circle(solid) ...

  6. android开发多国语言对照表

    android开发,支持多国语言时,都是"语言-地区"简称不好记忆,此处网络收集来作为笔记参考. msm8x12\build\target\product\languages_fu ...

  7. 解析大型.NET ERP系统 多国语言实现

    实现多国语言有许多种实现方案,无外乎是一种字符串替换技术,将界面控件的文本标签替换成相应语言的文字..NET Windows Forms实现多国语言的方法有以下几种: 1 .NET的方案,使用资源文件 ...

  8. c语言作业 字符串替换,C语言字符串替换。解决方法

    当前位置:我的异常网» C语言 » C语言字符串替换.解决方法 C语言字符串替换.解决方法 www.myexceptions.net  网友分享于:2015-04-14  浏览:0次 C语言字符串替换 ...

  9. ASP.NET MVC 3 Razor 多国语言参考解决方案 补充四

    ASP.NET MVC 3 Razor 多国语言参考解决方案 补充四 转自 http://www.cnblogs.com/think8848/archive/2011/07/05/2098464.ht ...

最新文章

  1. oracle10个,OracleDBA新手经常碰到的10个Oracle错误
  2. 用numpy做图像处理
  3. 如何获取微信API的Access Token
  4. 使用 Redis 如何实现延迟队列?
  5. windows批量上传文件到linux,windows上传文件到linux云服务器上
  6. 推荐!12个经典开源人脸识别数据库
  7. 不要上网更新计算机系统的补丁程序,360安全卫士更新补丁后系统不能联网怎么办...
  8. 前端JS获取内网IP地址
  9. 数字信号处理第二次试验:时域采样与频域采样
  10. 计算机本科科研什么项目,本科生做科研:大势所趋?
  11. c语言过磅系统,衡安无人值守地磅称重系统过磅流程
  12. 6种抗辐射的经典美食
  13. CSS阴影效果(Box-shadow)用法趣味讲解
  14. 英语中学生测试软件,中考英语口语测试软件.doc
  15. 极度调查:“变阵”中国移动
  16. mysql远程服务器返回错误404_服务器常见页面访问返回错误信息(404 500 400)表示什么意思...
  17. 英文版sketch如何转为中文版?sketch英文转为中文教程!
  18. 读论文《Natural Language Processing (Almost) from Scratch》
  19. 写c语言时鼠标变成黑色柱体
  20. 计算鬼成像学习笔记二:二阶关联函数探究

热门文章

  1. ECshop 页面修改及出错处理方法基础知识(第一部分)
  2. MySQL最最基础篇
  3. vue3实现H5监听浏览器回退并阻止回退
  4. UE5数字人毛发衣服的替换以及动画蓝图放在哪里
  5. 云计算中的边缘计算技术及其应用
  6. win8 关闭 打开文件的安全警告
  7. 第16届 IEEE 极限编程大赛 参赛记录
  8. 闲话腾讯QQ的异地登陆检测所存在的漏洞
  9. JSPSSM204旅游景点线路网站 java毕业设计源码含论文和答辩ppt
  10. anonymous implementation of android.content.DialogInterface$OnDismissListener