[入门] 有关字符和字符串的问题
codekitten
2007-06-29
这段代码
import std.stdio; int main(char[][] args) { wchar[] p = "你好"; writefln(p); return 0; } 为什么输出的结果是"浣犲ソ" 难道是我什么概念没有搞清楚? 第二个问题,char不是UTF-8码的吗,为什么不能表示中文呢? |
|
codekitten
2007-06-30
为什么这个问题啊,难道是这个问题太弱智了?
|
|
oldrev
2007-06-30
看看源程序是不是utf-8的
|
|
sleets
2007-06-30
我的源是utf-8的,但是出来的也是乱码。
|
|
ideage
2007-06-30
这是std.stdio的问题。
文件保存为 UTF8格式 import std.stdio; import std.c.locale; int main(char[][] argv) { fwide(stdout, 1); setlocale(LC_CTYPE, "china"); writefln("你好,世界!"); return 1; } 请看 http://dlang.group.iteye.com/group/topic/444 |
|
codekitten
2007-06-30
方法是可行,但是这样是不是太麻烦了一点,我如果要输出一个中文,就必须调用另一个库,有没有比较简便的办法呢
|
|
codekitten
2007-06-30
还有一个问题,不管它是不是乱码,为什么这样定义是有错的:
char a = '我'; 难道必须 wchar a = '我'; char不是支持UTF-8吗,难道UTF-8中没有汉字编码? |
|
oldrev
2007-06-30
忘了说,这是 Windows 控制台不支持 utf8造成的,Phobos 里有很多地方调用的是 *A 的API却直接传了UTF8的字符串,对多字节支持很成问题。不知道Walter怎么想的,不用*W的
|
|
Colorful
2007-06-30
codekitten 写道 还有一个问题,不管它是不是乱码,为什么这样定义是有错的:
char a = '我'; 难道必须 wchar a = '我'; char不是支持UTF-8吗,难道UTF-8中没有汉字编码? char表示1个字节,没有办法把'我'编码,编译器这时报出错误是正确的。 char[]才能够表达UTF-8编码。 不过,现在2.0的编译器对于这样的字符串常量都用string,wstring,dstring来表示,phobos库都改成string了。当然在char,wchar,dchar加const前缀也可以。 在D中,他们只是别名的关系。 alias const(char)[] string; alias const(wchar)[] wstring; alias const(dchar)[] dstring; |
|
codekitten
2007-07-01
原来支持UTF-8就是这么个支持法?
真是服了Walter,你就一个字节如何UTF-8啊? 唉,D语言啊,想说爱你不容易 |
相关讨论
相关资源推荐
- The Humane Interface, New Directions For Designing Interactive Systems
- 《人本界面》读书笔记
- The Dearbookian #20040422 The Humane Interface, The Inhumane Translation [评《人本界面》]
- 谷歌翻译SDK (Google Translate SDK)的使用
- 无法翻译此网页的解决办法 - GoogleTranslateIpCheck
- 【工具】Idea翻译插件中Google翻译修复
- PDF的google翻译V1.2
- 基于机器视觉的自动分拣系统
- 谷歌翻译api
- 谷歌翻译实现