相关疑难解决方法(0)

是否有Windows命令shell将显示Unicode字符?

假设我安装了具有相应字形的字体,是否有一个用于Windows XP的命令shell将显示Unicode字符?至少应该正确显示Unicode的两件事:

  • 目录列表.我不关心我必须键入什么(dir,ls,get-childitem等),只要名称中带有Unicode字符的文件带有正确的字形,而不是不可打印的字符框.
  • 文本文件内容列表.同样,只要字符被打印,对我来说无关紧要的是"少","更多","猫","狗"等.我认识到由于文件的字符编码,这更复杂,所以如果我必须在命令行上指定那对我没问题.

这是我到目前为止所尝试的:

  • CMD.EXE
  • Windows PowerShell; 包括多语言版本.
  • Cygwin bash

没运气.我甚至尝试为cmd/PowerShell安装自定义字体.PowerShell和cmd.exe似乎是Unicode感知的,因为我可以将不可打印的框复制/粘贴到那里,它将粘贴到具有正确字符的其他应用程序中.Cygwin(?)似乎转换为?字符和复制/粘贴中的字符.

有任何想法吗?

unicode powershell

49
推荐指数
4
解决办法
5万
查看次数

如何在源文件中嵌入unicode字符串常量?

我正在编写一些单元测试,用于验证我们处理各种使用除普通拉丁字母之外的其他字符集的资源:Cyrilic,Hebrew等.

我遇到的问题是我找不到在测试源文件中嵌入期望的方法:这是我正在尝试做的一个例子......

///
/// Protected: TestGetHebrewConfigString
///  
void CPrIniFileReaderTest::TestGetHebrewConfigString()
{
    prwstring strHebrewTestFilePath = GetTestFilePath( strHebrewTestFileName );
    CPrIniFileReader prIniListReader( strHebrewTestFilePath.c_str() );
    prIniListReader.SetCurrentSection( strHebrewSubSection );   

    CPPUNIT_ASSERT( prIniListReader.GetConfigString( L"?????????" ) == L"????????") );
}
Run Code Online (Sandbox Code Playgroud)

这根本不起作用.以前我使用一个宏调用一个例程将一个窄字符串转换为一个宽字符串(我们在应用程序中使用towstring所以它是现有代码)

#define UNICODE_CONSTANT( CONSTANT ) towstring( CONSTANT )

wstring towstring( LPCSTR lpszValue )
{
    wostringstream os;
    os << lpszValue;
    return os.str();
}
Run Code Online (Sandbox Code Playgroud)

上面测试中的断言变为:

CPPUNIT_ASSERT( prIniListReader.GetConfigString( UNICODE_CONSTANT( "?????????" ) ) == UNICODE_CONSTANT( "????????" ) );
Run Code Online (Sandbox Code Playgroud)

这在OS X上工作正常,但现在我正在移植到linux,我发现测试都失败了:它们都感觉相当hackish.任何人都能告诉我他们是否有更好的解决方案来解决这个问题?

c++ string unicode unit-testing constants

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

unicode ×2

c++ ×1

constants ×1

powershell ×1

string ×1

unit-testing ×1