`
jak47
  • 浏览: 73502 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

调用wprintf()输出中日文无法正确显示的问题

 
阅读更多

最近发现用wprintf()在控制台上输出日文的时候,经常是什么也不显示。
调查了一下,发现原来是locale的问题。

输出日文之前必须调用setlocale(),例子如下。

#include <stdio.h>
#include <locale>
 
int main( void ) {
  char *loc = setlocale( LC_CTYPE, "" );
  printf( "%s\n", loc );
 
  setlocale( LC_ALL, loc );
  wprintf( L"表示されます!\n" );
 
  return 0;
}
 

 

 

同样道理,在控制台上输出中文也应该调用setlocale()。

 

 

分享到:
评论

相关推荐

    使用JNI调用本地接口(解决中文问题)

    用 JNI 调用本地接口 作 ...3. 注意在C/C++中使用宽字符函数,如`wprintf`,以正确处理Unicode字符串。 通过这些步骤和技巧,我们可以成功地在Java中通过JNI调用本地接口,同时处理中文字符串,实现跨语言的高效通信。

    掌握C语言中的宽字符输入输出:深入`wprintf`、`wscanf`、`fwprintf`、`fwscanf`

    wprintf、wscanf、fwprintf和fwscanf是C标准库中的四个函数,它们用于处理宽字符的输入和输出。本文将详细介绍这些函数的使用方法,并提供实际的代码示例。 wprintf、wscanf、fwprintf和fwscanf是C语言中处理宽字符...

    解析wprintf 中使用%I64d格式化输出LONGLONG的详细介绍

    特别是在处理大数据或者跨平台编程时,确保正确地使用格式化输出函数可以避免数据溢出或输出错误的问题,从而提高程序的稳定性和可靠性。在处理`LONGLONG`和`ULONGLONG`这类大整数时,记住使用`%I64d`和`%I64u`格式...

    C语言课程设计—中文显示,汉字显示

    在C语言编程中,中文和汉字的显示是一个相对复杂的过程,因为C语言本身并不直接支持Unicode编码,这使得处理非ASCII字符集(如中文)变得有些棘手。本课程设计的目标是实现C语言环境下对中文的正确显示。下面将详细...

    Ansi、Unicode、UTF8字符串之间的转换,wprintf

    使用 wprintf 函数可以输出 Unicode 字符串,并且可以指定输出的宽度和精度。 总结 字符串编码转换是计算机编程中一个非常重要的概念。 Ansi、Unicode 和 UTF8 是三种常见的字符串编码方式,每种编码方式都有其优...

    中文输出控制台乱码

    这个现象通常发生在尝试在命令行界面(如CMD或Terminal)打印包含中文字符的字符串时,显示的字符无法正确解读,呈现出一堆无法识别的符号。本文将深入探讨这个问题的成因、解决方案以及预防措施。 ### 1. 乱码的...

    VC++调用IDL的使用案例

    在软件开发过程中,有时我们需要在不同的编程环境中进行通信和数据交换。VC++(Microsoft Visual C++)作为一种强大的C++开发工具,常常需要与其他系统或组件交互。这时,接口定义语言(Interface Definition ...

    C++调用C#的dll

    标题中的"C++调用C#的dll"是指在C++程序中使用C#编写的动态链接库(DLL)文件。这种跨语言的交互是通过.NET Framework的互操作性(Interoperability)特性实现的,主要涉及到C++/CLI(C++针对.NET的扩展)和.NET的元...

    函数调用约定与函数名称修饰规则.pdf

    - **适用场景**:适用于可变参数函数,如printf和Windows API中的`wprintf`。 - **名称修饰**:对于C语言,`__cdecl`方式的名字修饰约定是在名称前添加一个下划线;对于C++,除非特别使用`extern "C"`,否则C++使用...

    talkback.c用VS2015编译输出乱码有效解决

    在VS2015中,默认的字符集通常是Windows默认的多字节字符集(MBCS),这可能导致在处理UTF-8编码的源代码时出现问题,因为UTF-8包含非ASCII字符,而MBCS可能无法正确识别这些字符。 解决乱码问题的第一步是检查`...

    windows 文本输出

    2. `printf` 和 `wprintf` 函数:C标准库中的这两个函数在控制台上进行格式化输出,适用于ASCII和宽字符字符串。`printf`处理ANSI字符串,`wprintf`处理Unicode字符串。 二、GUI窗口输出 1. `CreateWindowEx` 和 `...

    VB API实现简单的程序窗口.rar

    VB 基于API技术实现简单的程序窗口,源码文件说明:用VB的模块模仿写的几个小例子(不用窗体)[源码] ...主要是用到了wsprintf函数,对应于Win32API函数wprintf(Win32API函数wprintf在VB中不能去调用它,调用会出错。)

    Code:Blocks-中文乱码问题原因分析和解决方法1

    对于Tiny C,由于它不完全支持宽字符集,`wprintf`函数可能无法正常显示宽字符,需要通过设置locale和避免使用宽字符来解决输出问题。 而在Visual Studio 2005-2010中,由于其良好的本地化支持,中文乱码问题相对较...

    Python调用ctypes使用C函数printf的方法

    在Python编程中,有时我们需要调用C语言的函数来实现某些特定功能,例如使用C标准库中的`printf`函数进行格式化输出。Python提供了ctypes库,允许我们直接调用C动态链接库(DLL)中的函数,从而实现与C语言的交互。...

    在c程序中处理汉字

    在C程序中处理汉字是一...总之,处理C程序中的汉字需要对编码、字符串函数、输入输出等方面有深入的理解和正确的应用。通过选用适当的工具和技术,可以有效地解决汉字处理中遇到的各种问题,为用户提供更好的中文支持。

    C/C++调用vbs实现InputBox

    `InputBox`函数是VBScript中用于显示一个对话框,让用户输入文本并返回用户输入的数据。它的基本语法是`InputBox(prompt [Caption] [, Title] [, XPos] [, YPos])`,其中`prompt`是提示用户输入的文本,`Caption`是...

    Windows_Unicode_.rar_unicode_visual c

    但使用printf等ANSI输出函数时,可能无法正确显示,此时应使用_wprintf等宽字符版本。 以上是关于Windows环境下使用Visual C++进行Unicode编程的主要知识点。理解和掌握这些内容对于创建支持多种语言的应用程序至关...

    COMC++调用C#的COM组件示例.rar

    在类库中定义公共接口和实现类,确保这些接口和类使用`[Guid]`、`[ComVisible(true)]`和`[InterfaceType(ComInterfaceType.InterfaceIsDual)]`等特性标记,以便它们在COM环境中可见。例如,你可以创建一个简单的...

Global site tag (gtag.js) - Google Analytics