D语言字符串的初步使用

Visual Statio下的D语言还发环境及Windows桌面开发库Dgui设置好了,该是测试一下D语言来写个程序测试测试了。

使用VS新建一个D语言的Console的项目,输入代码

import std.stdio;

int main(string[] argv)
{
    auto str = "你好!";
    writeln(str);
    str.writeln();
    return 0;
}

调试运行后发现出错了,Console输出的是乱码

image 从朋友那里了解到,在windows中使用writeln函数输出时默认使用的是gbk编码,而d语言编译是使用utf8编码进行编译。因此,需要把默认的utf8转换为gbk才能正常输出,这个转化需要使用到exCode库,该库项目地址:https://github.com/meatatt/exCode 下载后发现,exCode项目是使用dub源码管理工具管理的项目,需要再下载dub工具才能编译,dub项目地址:https://github.com/dlang/dub

先来编译exCode项目吧

将dub的文件复制到dmd编译下的bin目录:

image

添加dmd编译器执行路径到环境变量

image 运行cmd,进入到exCode目录后,运行dub命令进行编译,如下图所示

image

编译成功后得到excode.lib文件

image

编译完成后,像使用dgui库一样,把excode.lib放到C:Ddmd.2.066.1.windowsusrlib目录,源码放到C:Ddmd.2.066.1.windowsusrsrc 目录

image

配置完成后,就可以使用该库了。

在工程性性里添加库的连接

image 修改代码如下:

import std.stdio;
import excode;

int main(string[] argv)
{
    wstring str = "你好!";
    writeln(UNI2GBK(str));
    str.UNI2GBK().writeln();
    return 0;
}

image

如果使用excode时有import database问题,将import database注释掉:

image

正常编译后运行:

image

中文已经成功显示出来了,str变量的长度为3,非常正确。

                                                                                                                                    作者:宛宏南

原文地址:https://www.cnblogs.com/wanhongnan/p/5705326.html