PHPword解决中文乱码
来源:互联网 发布:火星时代客观评价知乎 编辑:程序博客网 时间:2024/06/06 04:41
一、增加东亚字体支持
打开并编辑路径/Writer/Word2007/Base.php文件内容,大概在第349行(行数随着版本可能会有变化)大概函数_writeTextStyle内添加:
$objWriter->writeAttribute(‘w:eastAsia’, $font)
比如我的修改片段基本是下面这样:
Font if($font != ‘Arial’) {
$objWriter->startElement(‘w:rFonts’);
$objWriter->writeAttribute(‘w:eastAsia’, $font);// 添加这行
$objWriter->writeAttribute(‘w:ascii’, $font);
$objWriter->writeAttribute(‘w:hAnsi’, $font);
$objWriter->writeAttribute(‘w:cs’, $font);
$objWriter->endElement();
}
二、 解决中文乱码问题(此解法对于GBK编码有用,不适用于UTF-8)
编辑PHPWord/Template.php
找到代码$replace = utf8_encode($replace);,删除或者注释掉这行代码,添加$replace = iconv( ‘gbk’,’utf-8′, $replace);,比如代码改为如下:
if(!is_array($replace)) {
//$replace = utf8_encode($replace);
$replace =iconv(‘gbk’, ‘utf-8′, $replace);
// 注释掉上面行后添加这行
}
调用方式如下:
$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
上面的代码主要解决模板的问题,
下面同样的道理,解决Section添加文本的问题,
在PHPWord/Section.php找到代码$givenText = utf8_encode($text);,
删除或者注释掉这行代码,添加$givenText = iconv(‘gbk’, ‘utf-8′, $text);,比如代码如下:
public function addText($text, $styleFont = null, $styleParagraph = null) {
//$givenText = utf8_encode($text);
$givenText = iconv(‘gbk’, ‘utf-8′, $text);
// 注释掉上面行后添加这行
}
- PHPword解决中文乱码
- phpword解决中文乱码
- PHPWord中文乱码问题解决方案
- phpword生成中文乱码的问题
- 使用phpword导出word 中文乱码问题[IDE是PhpStrom]
- PHPWord
- 解决中文乱码问题
- Servlet 中文乱码解决
- ajax中文乱码解决
- Servlet 中文乱码解决
- 解决中文乱码问题
- 解决中文乱码问题
- 解决Struts中文乱码
- 过滤器解决中文乱码
- 中文乱码解决
- 解决中文乱码问题
- 解决中文文件名乱码
- 解决中文乱码
- OS1
- 设计模式笔记六:适配器模式
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- eclipse如何重新编译项目
- GraphicsLab Project之Screen Space Ambient Occlusion(SSAO)
- PHPword解决中文乱码
- java__给定一个数组和一个数(该数不一定在数组中),从数组里删掉这个数字,返回剩下的数组长度。
- poj 1019 Number Sequence && hdu 1597 find the nth digit(二分,模拟)
- Codeforces Round #402 (Div. 2)
- c++第一次上机实验:求分段函数值
- 轮胎打气的正确方法
- String类的拷贝(浅拷贝,深拷贝,写时拷贝)
- 十八哥视频教程中html和css的tips
- 流程控制