小编chi*_*s42的帖子

用C编写跨平台应用程序

在C中编写跨平台应用程序时应该记住哪些事项?目标平台:基于32位Intel的PC,Mac和Linux.我特别期待Jungle Disk在其USB桌面版中具有的多功能性(http://www.jungledisk.com/desktop/download.aspx)

这类开发有哪些提示和"陷阱"?

c 32-bit cross-platform

11
推荐指数
2
解决办法
5200
查看次数

如何以独立于平台的方式使用节点集功能?

我正在编写一些我想在linux和Windows下使用的xlst文件.在这个文件中,我使用node-set函数,该函数在不同的命名空间中为MSXML和xsltproc(分别为"urn:schemas-microsoft-com:xslt"和" http://exslt.org/common ")声明.是否有任何平台独立的方式使用节点集?

xml xslt msxml cross-platform

11
推荐指数
3
解决办法
5065
查看次数

将utf16写入二进制模式的文件

我试图用二进制模式的ofstream写一个wstring文件,但我觉得我做错了.这就是我尝试过的:

ofstream outFile("test.txt", std::ios::out | std::ios::binary);
wstring hello = L"hello";
outFile.write((char *) hello.c_str(), hello.length() * sizeof(wchar_t));
outFile.close();
Run Code Online (Sandbox Code Playgroud)

在例如Firefox中打开test.txt,编码设置为UTF16,它将显示为:

你好

谁能告诉我为什么会这样?

编辑:

在十六进制编辑器中打开文件我得到:

FF FE 68 00 00 00 65 00 00 00 6C 00 00 00 6C 00 00 00 6F 00 00 00 
Run Code Online (Sandbox Code Playgroud)

看起来我出于某种原因在每个角色之间得到两个额外的字节?

c++ unicode utf-16

11
推荐指数
3
解决办法
8973
查看次数

你如何编写对UTF-8安全的代码?

我们有一组为ASCII字符集开发的应用程序.现在,我们正试图在冰岛安装它,并且遇到了冰岛角色搞砸的问题.

我们正在解决我们的问题,但我想知道:是否有一个很好的"指南"用于编写专为8位字符设计的C++代码,并且在为其提供UTF-8数据时它将正常工作?

我不能指望每个人都阅读整个Unicode标准,但如果有更易于理解的东西,我想与团队分享,所以我们不会再遇到这些问题.

重写所有应用程序以使用wchar_t或其他字符串表示形式目前是不可行的.我还要注意,这些应用程序通过网络与使用8位字符的服务器和设备进行通信,因此即使我们在内部使用Unicode,我们仍然会遇到边界转换问题.在大多数情况下,这些应用程序只传递数据; 他们不会以任何方式"处理"文本,除了将文本从一个地方复制到另一个地方.

使用的操作系统是Windows和Linux.我们使用std :: string和普通的C字符串.(并且不要让我为任何设计决定辩护.我只是想帮助解决这个问题.)


以下列出了已建议的内容:

c++ globalization unicode utf-8

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

UTF-16到UTF-8转换(用于Windows中的脚本)

将UTF-16文件转换为UTF-8的最佳方法是什么?我需要在cmd脚本中使用它.

windows cmd batch-file utf-8 utf-16

10
推荐指数
5
解决办法
3万
查看次数

将UTF-8编码转储加载到MySQL中

我昨天几个小时一直在听这个问题:

我在MySQL 4.1.22服务器上有一个数据库,编码设置为"UTF-8 Unicode(utf8)"(由phpMyAdmin报告).此数据库中的表将默认字符集设置为latin2.但是,使用它的Web应用程序(用PHP编写的CMS Made Simple)在utf8中显示页面...

无论如何搞砸了,它确实有效.Web应用程序正确显示字符(主要使用捷克语和波兰语).

我运行:"mysqldump -u xxx -p -h yyy dbname> dump.sql".这给了我一个SQL脚本:

  • 在以UTF-8显示时,在任何编辑器(如记事本+)中看起来都很完美- 所有字符都能正常显示
  • 脚本中的所有表都将默认字符集设置为latin2
  • 它有"/*!40101 SET NAMES latin2*/;" 开头的行(在其他设置中)

现在,我想将此数据库导出到在MySQL 5.0.67上运行的另一台服务器,同时将服务器编码设置为"UTF-8 Unicode(utf8)".我复制了整个CMS Made Simple安装,复制了dump.sql脚本并运行了"mysql -h ddd -u zzz -p dbname <dump.sql".之后,在显示CMSMS网页时,所有字符都会被加扰.

我尝试设置:
SET character_set_client = utf8;
SET character_set_connection = latin2;

和所有组合(只是为了安全,即使它对我没有任何意义):latin2/utf8,latin2/latin2,utf8/utf8等 - 没有帮助.所有角色仍然在争吵,但有时以不同的方式:).

我还尝试用脚本中的utf8替换所有latin2设置(为表设置名称和默认字符集).没有.

这里有没有MySQL专家可以用几句话来解释(我相信它毕竟很简单)这整个编码的东西真的有用吗?我看了9.1.4.连接字符集和排序,但没有找到任何帮助.

谢谢,马特

mysql encoding utf-8

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

Web2py默认应用

我计划很快在Dreamhost上使用乘客WSGI 发布我的网站,如dreamhost设置文档中所述.

我的问题是我希望www.mydomain.com直接转到我的新应用程序,而不是需要转到web2py.mydomain.com/MyApp/Default.

解决这个问题的最佳方法是什么?我是否使用DNS重定向,还是可以通过web2py配置完成?

dns web2py dreamhost

9
推荐指数
2
解决办法
4500
查看次数

将IEnumerable拆分为两个

我想将一个列表分成两个列表,一个可以直接处理,另一个是余数,它将通过链传递给其他处理程序.

输入:

  • 一个项目清单
  • 一种过滤方法,用于确定要包含项目的列表.

输出:

  • 一个"真实"的清单
  • 一个"虚假"的名单

这已经存在了吗?也许是我目前没想到的Linq方法?否则,有没有人有一个很好的C#示例?

c# linq

9
推荐指数
1
解决办法
3788
查看次数

如何在浏览器的文件下载框中显示非ascii文件名?

似乎没有一种可接受的方式来发送非ascii格式的头参数.

文件下载的标题通常是这样的

内容配置:附件; 文件名= "theasciifilename.doc"

除非你在filename参数中粉碎utf8编码的字符串,否则Firefox会处理它,而IE会抛出.

CodeProject上有一个文档,解释了编码文件名的方法.

该文件通过十六进制编码字节将BảnKiểmKê.doc编码为B%e1%ba%a3n%20Ki%e1%bb%83m%20K%c3%aa.doc.

问题#1:该字符串中的第一个字符:ả的值为ả - 以十六进制编码该数字,得到%a3%1e.这家伙怎么得到%e1%ba%a3?(我显然在这里遗漏了一些简单的东西)

问题2:虽然IE承认这种编码,但Firefox却没有!该怎么办?

encoding utf-8

8
推荐指数
2
解决办法
7485
查看次数

使用显式接口确保针对接口进行编程

我已经看到了使用显式接口作为将类使用锁定到该接口的方法的参数.这个论点似乎是通过强迫其他人编程到接口,你可以确保更好地解耦类并允许更容易的测试.

例:

public interface ICut
{
    void Cut();
}
public class Knife : ICut
{
    void ICut.Cut()
    {
        //Cut Something
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用Knife对象:

ICut obj = new Knife();
obj.Cut();
Run Code Online (Sandbox Code Playgroud)

你会推荐这种接口实现方法吗?为什么或者为什么不?

编辑:另外,鉴于我使用显式接口,以下将无法正常工作.

Knife obj = new Knife();
obj.Cut();
Run Code Online (Sandbox Code Playgroud)

c# design-patterns interface

8
推荐指数
1
解决办法
1515
查看次数