0

亲爱的 stackoverflow 用户,

我目前正在从事一个学校项目,该项目涉及通过使用其元数据从现有的 MSSQL 数据库生成 PHP Web 应用程序。我目前在将 varchar 或 nvarchar 数据类型保存到硬盘时遇到问题。我在互联网上找到了几个存储过程,它们都使用 so_OAMethod 将字符串保存到硬盘。这些存储过程都可以工作。我的问题是他们使用 UTF-16 字符编码保存文件。我们必须使用带有标准 PHP 模块的 apache 网络服务器。这样做的问题是 PHP 解释器错误地解释了 UTF-16 文件,我们确实得到了带有 PHP 代码的普通网页作为普通文本。我的问题是有办法以 UTF-8 格式将文件从 Microsoft SQL Server 保存到硬盘吗?或者是否有可能让 PHP 解释器将 UTF-16 文件解释为普通的 PHP 代码?

亲切的问候,沃特

4

1 回答 1

3

我假设您会在存储过程中调用CreateTextFile之类的东西来写出数据,因为这些存储过程似乎调用了 vbscript。这样的例程通常有一种方法来指定你想要 unicode 还是 ansi。

所以你会得到类似的东西

sp_OAMethod @objFileSystem , 'CreateTextFile' , @objTextStream OUT, @FileAndPath,2,True

所以 Scripting.FileSystemObject 实例,要保存的文本,文件路径,覆盖?,ANSI/UNICODE(False = ANSI,True = unicode)

通常,如果您使用此方法,它应该会自动创建一个 ANSI 文件。

以供参考:

Sub CreateAfile
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("c:\testfile.txt", True)
    a.WriteLine("This is a test.")
    a.Close
End Sub
于 2012-05-28T22:19:00.433 回答