<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Amazon 解決下載文件亂碼 大家在做多個站點的時候,可能會遇到下載下來的報告文件出現亂碼。 法國站點和意大利站點均會出現這樣的情況,那怎么解決呢? 這是由于編碼的問題而導致,在我們讀取數據插入到本地數據庫的時候,不妨先將格式轉成對應國家能正確識別的格式。 在文檔中也有看到。 ![](https://img.kancloud.cn/0e/05/0e05d06612ce417c1a8386eb5bf5cf05_1899x768.png) 還要一個問題需要說明,由于操作系統設置默認語言的原因,在小國家站點,我們下載下來的報告可能會出現亂碼的情況。這種情況很正常,在調用接口的時候,也沒有辦法去解決直接下載就出現正常編碼。 現在的方法是將下載下來的亂碼文件,通過流操作,重新編碼,根據上圖對應的編碼來設置編碼。 文章來自[https://www.cnblogs.com/yangda/p/3963220.html](https://www.cnblogs.com/yangda/p/3963220.html) 以下已驗證可行 ``` # 檢測編碼,未檢測到用市場指定的編碼轉utf8;檢測出來,用檢測的編碼轉utf8;如果是utf8,則不作處理 // $encode = mb_detect_encoding($result, array("UTF-8",'iso-8859-1',"Shift_JIS","cp1252",'UTF-16')); $encode = mb_detect_encoding($result); if($encode == false){ $marketplaceId = $this->config['Marketplace_Id']; if(in_array($marketplaceId, $this->market_EU) || in_array($marketplaceId, $this->market_US)){ $result = mb_convert_encoding($result, "UTF-8", ["iso-8859-1", "cp1252"]); }else if(in_array($marketplaceId, $this->market_JP)){ $result = mb_convert_encoding($result, 'UTF-8', ["Shift_JIS"]); }else if(in_array($marketplaceId, $this->market_CN)){ $result = mb_convert_encoding($result, 'UTF-8', ["UTF-8", "UTF-16"]); }else{ $result = mb_convert_encoding($result, "UTF-8", ["cp1252"]); } }else if($encode != 'UTF-8'){ $result = mb_convert_encoding($result, "UTF-8", $encode); } private $market_US = [ 'ATVPDKIKX0DER', 'A1AM78C64UM0Y8', 'A2EUQ1WTGCTBG2', 'A21TJRUUN4KGV', 'A2Q3Y263D00KWC', 'A39IBJ37TRP1C6', ]; private $market_EU = [ 'A1PA6795UKMFR9', 'A1RKKUPIHCS9HS', 'A13V1IB3VIYZZH', ]; private $market_JP = [ 'A1VC38T7YXB528' ]; private $market_CN = [ 'AAHKV2X7AFYLW' ]; ``` ``` <?php namespace App\Service\Amazon; class MarketplaceId { # North America region const BR = 'A2Q3Y263D00KWC'; # 巴西 const CA = 'A2EUQ1WTGCTBG2'; # 加拿大 const MX = 'A1AM78C64UM0Y8'; # 墨西哥 const US = 'ATVPDKIKX0DER'; # 美國 # Europe region const AE = 'A2VIGQ35RCS4UG'; # 阿聯酋 const DE = 'A1PA6795UKMFR9'; # 德國 const EG = 'ARBP9OOSHTCHU'; # 埃及 const ES = 'A1RKKUPIHCS9HS'; # 西班牙 const FR = 'A13V1IB3VIYZZH'; # 法國 const GB = 'A1F83G8C2ARO7P'; # 英國 const IN = 'A21TJRUUN4KGV'; # 印度 const IT = 'APJ6JRA9NG5V4'; # 意大利 const SA = 'A17E79C6D8DWNP'; # 沙特阿拉伯 const TR = 'A33AVAJ2PDY3EV'; # 土耳其 # Far East region const SG = 'A19VAU5U5O7RUS'; # 新加坡 const AU = 'A39IBJ37TRP1C6'; # 澳大利亞 const JP = 'A1VC38T7YXB528'; # 日本 const CN = 'AAHKV2X7AFYLW'; # 中國 } ``` 后續更新: 實際上出現了檢測出編碼為ISO-8859-1,最后轉碼還是亂碼。該$result寫入xls文件,雙擊打開日文顯示正常。 后面發現,我改變該檢測字符編碼函數的第三個參數,結果卻各不相同: `$encode = mb_detect_encoding($result, array("UTF-8",'iso-8859-1',"Shift_JIS","cp1252",'UTF-16')); ` `$encode = mb_detect_encoding($result, array("UTF-8",'Shift_JIS',"iso-8859-1","cp1252",'UTF-16')); ` `$encode = mb_detect_encoding($result); ` 同一個字符串三個返回結果都不一樣。分別為: ISO-8859-1 SJIS false 這個檢測編碼的函數可能存在問題,需要后續深入研究。 但是,第二和第三的結果分別會構成 `$result = mb_convert_encoding($result, 'UTF-8', 'SJIS');` 和 `$result = mb_convert_encoding($result, 'UTF-8', 'Shift_JIS');` 邏輯。 都會正常轉換成日文。 我的猜想是: mb_convert_encoding并不是一個嚴格函數,在第三個參數【待檢測的字符編碼列表】給出的情況下,他會按順序檢測字符特性的符合度,達不到,按給出列表的順序逐個匹配,達到一定符合度就直接返回匹配的編碼,后續不再檢測。 所以,在一個字符串的字符特性與多個編碼的匹配度滿足符合度的情況下,誰排在前面就return誰。所以出現了第一和第二的不同編碼返回。 所以我這里建議是,如果已知目標字符串是哪國編碼,指定轉換即可,或者在mb_detect_encoding的檢測列表將該國編碼或者可能性按大小依次排列 對于你這個問題,既然已知日文,直接`mb_convert_encoding($result, 'UTF-8', 'Shift_JIS');`試試。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看