遇到这个问题是我在遍历文件夹的时候,然后有一个文件夹的文件名是日语的,如下:[121121]TVアニメ『ロボティクス・ノーツ』OP主题歌『純情スペクトラ』/Zwei[320K+BK]这个文件夹肯定是存在的,但是访问的时候出了问题。后来排查了一下问题,发现是中加那个点“・”没法识别
“・”的unicode编码是12539,可以参见http://www.nengcha.com/code/unicode/class/104/单独试了一下,怎么都输出不来。代码如下

wchar_t* k = L"ロボティクス・ノーツフ";
wchar_t* m = L"ロボティクス";
setlocale(LC_ALL,"chs");
wprintf(L"%s",m);
while(1);输出m是可以的,但是输出k的时候就会发现中间那个点的位置是问号。求助各位大神。我的环境是vs2010

解决方案 »

  1.   

    console的功能有限,不能显示这么复杂的字符
      

  2.   

    你在程序里用CString肯定不会有问题的~
      

  3.   

    你试试控件上能否显示
    //
    to_utf16_big_string ( right ( int ( 12539 ) , 02 ) ) 
    //------
    int
    //------
      input = 012539  hex = 00 00 30 FB 
    //

    //----
    right returns a specified number data from input data right side
    //----
      input = 00 00 30 FB 
    //----
      length = 02 
    //----
      output = 30 FB 
    //

    //--
    to_ucs280_string convert ucs2 80 format input data to string
    //--
      input = 30 FB 
    //--
      output = "・"
    //

    //-----
    最终计算结果 --- "・"
    //
    俺这边显示没问题。
      

  4.   

    ::MessageBox(0, k, m, 0);这样可以正常显示