[英]How to decode data from base64 with utf-8 charset encoding in php
我有一個 xml 文件,其中包含這樣的動態內容。
<?xml version="1.0" encoding="UTF-8"?>
<config>
<tracks>
<idx>0</idx>
<path>/mnt/HD/HD_a2/mymusic/Worth It - Fifth Harmony - ft. Kid Ink.mp3</path>
</tracks>
<tracks>
<idx>1</idx>
<path>/mnt/HD/HD_a2/mymusic/Flashlight - Jessie J.mp3</path>
</tracks>
<tracks>
<idx>2</idx>
<path>/mnt/HD/HD_a2/mymusic/価値がある.mp3</path>
</tracks>
</config>
還有一個 php 文件,它根據第一個 xml 上的數據獲取創建另一個 xml 文件。 這是生成新xml的一段代碼:
$item = $xml->addChild('tracks');
$item->addChild('artist', base64_encode($mp3Artist));
$item->addChild('song_name', base64_encode($mp3Title));
$item->addChild('song_path', base64_encode($file));
$item->addChild('album', base64_encode($mp3Album));
但是,當我編碼/mnt/HD/HD_a2/mymusic/価値がある.mp3
輸出是L21udC9IRC9IRF9hMi9teW11c2ljL+S+oeWApOOBjOOBguOCiy5tcDM=
當我再次解碼時,該值變為/mnt/HD/HD_a2/mymusic/価値ãŒã‚ã‚‹.mp3
但是當我在這個站點上對它進行https解碼時://www.base64decode.org/使用utf-8編碼,輸出與第一個相同,即/mnt/HD/HD_a2/mymusic/価値がある.mp3
所以我的問題是,如何在 php 的base64_encode
上實現 utf-8 編碼以輸出與 www.base64decode.org 上完全相同的輸出? 任何幫助都感激不盡。
您無需執行任何操作,只需使用base64_decode
:
$encoded = base64_encode("/mnt/HD/HD_a2/mymusic/価値がある.mp3");
echo "\xEF\xBB\xBF" ;//Optionally add this line if you want to force a program to read as utf-8
echo $encoded." <br />";
$decoded = base64_decode($encoded);
echo $decoded;
並可選擇添加echo "\\xEF\\xBB\\xBF" ;
如果要強制任何程序將文件解釋為 utf-8,請在第一輸出行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.