#31327 [Opn->Asn]: chinese char and word problem
| From: | sniper@php.net | Date: | Tue, 16 Aug 2005 15:17:47 +0000 |
| Subject: | #31327 [Opn->Asn]: chinese char and word problem | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-83652@lists.php.net to get a copy of this message | ||
ID: 31327
Updated by: sniper@php.net
Reported By: vtsuper1 at mail dot hongkong dot com
-Status: Open
+Status: Assigned
Bug Type: COM related
Operating System: windowXP
PHP Version: 5.1
Assigned To: wez
Previous Comments:
------------------------------------------------------------------------
[2005-08-16 04:53:35] vtsuper1 at mail dot hongkong dot com
After yours information, I have try to modified my code and make it
support the correct code_page. But finially the result is exactly the
same with my first script. There are some meaningless square appears
after my Chinese word. (Actually I'm quite confused that why only Word
has this problem but excel didn't?)
here are some link related to this problem:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/act/htm/actml_ref_scpg.asp
http://bugs.php.net/bug.php?id=31327
http://bugs.php.net/bug.php?id=28117
http://hk.php.net/manual/en/class.com.php
here are my new scripts:
<?php
$code_page=array('950','0','1','2','3','65001');
for ($i=0;$i<count($code_page);$i++){
// starting word
$word = new COM("word.application",NULL,$code_page[$i]) or
die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
//bring it to front
$word->Visible = 1;
//open an empty document
$word->Documents->Add();
//do some weird stuff
$word->Selection->TypeText("ÄãºÃá");
$word->Documents[1]->SaveAs("D:\AppServ\www\word\\".$code_page[$i].".doc");
//closing word
$word->Quit();
//free the object
$word = null;
}
?>
------------------------------------------------------------------------
[2005-08-11 16:11:55] wez@php.net
Make sure you're setting up the code page properly.
From the manual:
com.code_page
It controls the default character set code-page to use when passing
strings to and from COM objects. If set to an empty string, PHP will
assume that you want CP_ACP, which is the default system ANSI code
page.
If the text in your scripts is encoded using a different
encoding/character set by default, setting this directive will save you
from having to pass the code page as a parameter to the COM class
constructor. Please note that by using this directive (as with any PHP
configuration directive), your PHP script becomes less portable; you
should use the COM constructor parameter whenever possible.
Consult MSDN for more information on code pages.
------------------------------------------------------------------------
[2005-08-08 11:21:52] bmcrowley at lcwarriormail dot com
I am experiencing the same bug with Arabic - I pull a UTF-8 character
from a database, and push it into Word with UTF-8 for the characterset.
I get meaningless characters (the box) appearing after (to the right of)
the arabic text. Also, the arabic text gets mangled - words out of
order...
I would try to post the input/output here, but it would be
meaningless...
------------------------------------------------------------------------
[2005-08-03 07:51:25] sniper@php.net
Assigned to the maintainer of COM extension.
------------------------------------------------------------------------
[2005-08-03 05:17:34] vtsuper1 at mail dot hongkong dot com
Dear sir,
Thanks for your help. I have test it in a php 5.1.X version. But the
bug doesn't fixed. The meaningless space change to a square characters
only...
Anyway, thanks for your help. (This problem hasn't exist in Excel, it
only happened in Word only)
From Victor
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/31327
--
Edit this bug report at http://bugs.php.net/?id=31327&edit=1