ホームページ バックエンド開発 PHPチュートリアル Imagick は中国語のファイル名をロードできません

Imagick は中国語のファイル名をロードできません

Jun 13, 2016 pm 01:00 PM
imagick nbsp php windows

Imagick 无法载入中文文件名
Imagick 无法载入中文文件名

<?php<br />
<br />
<br />
$filepath = 'F:\\';<br />
$filename="哈.tif";<br />
<br />
$encoded_filename = urlencode($filename);<br />
$encoded_filename = str_replace("+", "%20", $encoded_filename);<br />
<br />
//$filename =  iconv('utf-8', 'gb2312', $filename);<br />
$jpgfilename = substr($filename,0,strrpos($filename,'.')).'.jpg';<br />
$im = new Imagick($filepath.$filename);<br />
$im->thumbnailImage(1200, 0);<br />
<br />
$width = $im->getImageWidth() ;<br />
$height = $im->getImageHeight();<br />
$width800 = 1200;<br />
$height800 = 1200*$height/$width;<br />
$canvas = new Imagick();<br />
$canvas->newImage($width, $height, '');<br />
$canvas->setImageFormat("jpeg");<br />
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);<br />
$canvas->writeImage($filepath.$jpgfilename);<br />
?>
ログイン後にコピー



$im = new Imagick($filepath.$filename);
到这一步就会报错:
Uncaught exception 'ImagickException' with message 'unable to open image `F:\哈.tif': No such file or directory @ error/blob.c/OpenBlob/2638' in F:\workspace\test\1.php:12
Stack trace:
#0 F:\workspace\test\1.php(12): Imagick->__construct('F:\??.tif')
#1 {main}
  thrown

------解决方案--------------------
那大哥您就别用中文文件名成不

看这个情况应该是这个包只支持utf-8的文件名,你在linux下跑估计就没什么问题了
------解决方案--------------------
参考一下这个吧
http://s.yanghao.org/program/viewdetail.php?i=91439
------解决方案--------------------
关于中文或其他多字节文件名的问题(仅限windows)
这是php的死症――php不能读取windows里面的unicode文件名,但其他系统可以
因为其他系统的unicode文件名多为utf-8编码,windows是特殊的混合编码

但php可以读取符合本地系统codepage的文件名,例如简体windows读取汉字(常用,限gb2312/GBK以内,如果有unicode extent汉字因为超出936的codepage也不属此列)的文件名没有问题,但为何web的php不行,因为apache……再次无解

所以php处理多字节windows符合本地codepage文件名只能绝对路径方式,处理unicode文件名只能用取巧的方式(短路径)+com,其他函数基本无力

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python Development_Pythonインストール Python Development_Pythonインストール May 07, 2025 pm 04:33 PM

Pythonは、Windows、Unix、Linux、Macintoshなどの一般的なプラットフォームを含むさまざまなプラットフォームで実行できます。この記事では、WindowsオペレーティングシステムにPythonをインストールするプロセスを詳細に紹介します。私のオペレーティングシステムは、Windows 7、32ビットバージョンです。 Pythonをインストールするときは、ソースコードからインストールするか、インストール用にすでにコンパイルされたバイナリバージョンを選択することを選択できます。私はここで後者を選びました。ステップ1インストールパッケージをダウンロードします。 Pythonの公式Webサイトhttp://www.python.orgからPythonのインストールパッケージをダウンロードします。私が選択したバージョンは次のとおりです:python-3.3.2.msiクリックしてダウンロード、i

PHPパフォーマンス最適化戦略。 PHPパフォーマンス最適化戦略。 May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

Web開発者向けの10の最新ツール Web開発者向けの10の最新ツール May 07, 2025 pm 04:48 PM

Web開発デザインは有望なキャリア分野です。ただし、この業界は多くの課題にも直面しています。より多くの企業やブランドがオンライン市場に目を向けるにつれて、Web開発者は自分のスキルを実証し、キャリアを成功させる機会があります。ただし、Web開発の需要が増え続けているため、開発者の数も増加しており、その結果、ますます激しい競争が発生しています。しかし、才能と意志があれば、ユニークなデザインやアイデアを作成する新しい方法をいつでも見つけることができるのはエキサイティングです。 Web開発者として、新しいツールとリソースを探し続ける必要があるかもしれません。これらの新しいツールとリソースは、仕事をより便利にするだけでなく、仕事の品質を向上させるため、より多くのビジネスと顧客を獲得するのに役立ちます。 Web開発の傾向は絶えず変化しています。

.NET COREクイックスタートチュートリアル1。始まり:.NETコアについて話す .NET COREクイックスタートチュートリアル1。始まり:.NETコアについて話す May 07, 2025 pm 04:54 PM

1. .NETCOREの起源.NetCoreについて話すとき、その前身.NETについて言及してはなりません。ジャワは当時脚光を浴びていて、マイクロソフトもジャワを支持しました。 Windowsプラットフォーム上のJava仮想マシンは、JVM標準に基づいてMicrosoftによって開発されました。当時の最高のパフォーマンスJava仮想マシンと言われています。ただし、Microsoftには独自の小さなAbacusがあり、WindowsプラットフォームでJavaをバンドルし、Windows固有の機能を追加しようとしています。 Sunのこれに対する不満は、2つの政党間の関係の内訳につながり、Microsoftは.NETを立ち上げました。 .NETは、Javaの設立以来、Javaの多くの機能を借りており、言語機能とフォーム開発のJavaを徐々に上回っています。バージョン1.6のJava

PHPでの依存関係注射のベストプラクティス PHPでの依存関係注射のベストプラクティス May 08, 2025 am 12:21 AM

依存関係注射(DI)を使用する理由は、コードのゆるい結合、テスト可能性、および保守性を促進するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

phpmyadminの機能:mysql(sql)との対話 phpmyadminの機能:mysql(sql)との対話 May 07, 2025 am 12:16 AM

PhpMyAdminは、Webインターフェイスを介してMySQLデータベース管理を簡素化します。 1)データベースとテーブルの作成:グラフィカルインターフェイスを使用して簡単に動作します。 2)複雑なクエリを実行する:SQLエディターを介して実装されたJoin Queryなど。 3)最適化とベストプラクティス:SQLクエリの最適化、インデックス管理、データバックアップを含む。

PHPメールの検証:電子メールが正しく送信されるようにします PHPメールの検証:電子メールが正しく送信されるようにします May 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

See all articles