Delphi10.1ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しません

供給

base64文字列をデコードしようとしています

Sample:='MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECO9X2Lfq3EYMBBiX0/4McWT3y6hWMvOJvH5MwD22EOvPbLQ=';
Result:=DecodeString(Sample);

エラーが発生しました:「ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しません」。私は何が間違っているのですか?

デビッド・ヘファーナン

あなたのコードサンプルは不完全ですが、私はそれDecodeStringがからの関数であると推測することしかできませんSoap.EncdDecdその仮定を考えると、への呼び出しDecodeStringは確かにあなたが説明する例外を引き起こします。

例外は、バイナリデータとテキストデータが交換可能であるという非常に一般的な誤解によって引き起こされます。電話をかけるDecodeStringと、実際には2つの操作を実行するように求められます。

  1. base64データをバイナリ(バイトの配列)にデコードします。
  2. このバイナリデータをUTF-8でエンコードされたテキストとして解釈し、ネイティブのDelphi文字列にデコードします。

base64データが有効であるため、これらの操作の最初の操作は成功します。バイナリデータが有効なUTF-8エンコードテキストではないため、2番目の操作は失敗します。

非常に一般的ではありますが、バイナリデータ(バイトの配列)を文字列として扱いたいという誤った間違いを犯している可能性があります。文字列はバイトの配列と同じものではありません。

バイナリデータがあるので、次のように扱います。

uses
  System.NetEncoding;

var
  base64: string;
  bytes: TBytes;
....
base64 := 'MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECO9X2Lfq3EYMBBiX0/4McWT3y6hWMvOJvH5MwD22EOvPbLQ=';
bytes := TNetEncoding.Base64.DecodeStringToBytes(base64);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AndroidでDelphi10のスレッドを終了する

分類Dev

Delphi10。この文字まで文字をコピーする関数 ':'

分類Dev

独自のスプラッシュスクリーンDelphi10シアトルを作成する

分類Dev

delphixe6ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しません

分類Dev

TList <_AnyDynamicArrays_>でDelphi10のバグを回避するにはどうすればよいですか?

分類Dev

Delphi10のhttpコンポーネントを使用してInstagramのフォローリストを取得する方法

分類Dev

「ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しない」原因は何ですか?

分類Dev

ターゲットのマルチバイトコードページにUnicode文字のマッピングがありません:MemoryStreamを文字列に変換する方法

分類Dev

delphi プロジェクトのビルド中にエラー ターゲット クリーンがプロジェクトに存在しません msbuild エラー

分類Dev

Windows10のインストール-コンピューターに必要なメディアドライバーがありません

分類Dev

jqueryバリデータプラグインを使用して、2つの10進数+ドット+コンマのみに正規表現を設定します

分類Dev

WinPEのWindowsの10イメージング - バッチスクリプトの「PAUSE」の後に「リブートwpeutil」と呼ぶことができません。

分類Dev

間違った文字への10のネットワークドライブマッピングに勝つ

分類Dev

codeigniterのページ付けデータテーブルの10レコード後に、ブートストラップモーダルがポップアップしませんでした

分類Dev

JDK10 SDKとのIntelliJのは、1.8ターゲットとのMavenプロジェクトをコンパイルしません。

分類Dev

Windows 10のアップグレード:エラーなしで23%で停止し、Dismはboot.wimWIMイメージをマウントしません

分類Dev

ブートマネージャーのEFIフォルダーの内容を誤って削除してしまいました。修復ディスクはありませんが、コンピューターの電源は入っています。(ウインドウズ10)

分類Dev

Windows 10Pro-以前のバージョンはマップされたネットワークドライブでは機能しません

分類Dev

ビルド10586などの特定のバージョンのWindows10のターゲットコード

分類Dev

Windows 10 バージョン 1909 に更新できません: エラー コード 0x80073712 であり、コンピューターをリセットしてもエラー コードが生成されます

分類Dev

Windows 10の評価が非常に速くシャットダウンし、フルバージョンを再インストールできません

分類Dev

Delphi 10は、従来の(MetroUI以外の)Windows 32/64アプリケーションでマルチタッチをサポートしていますか?

分類Dev

Windows 10システム状態バックアップwbadminコマンドは、「指定されたバックアップストレージの場所に別のボリュームにシャドウコピーストレージがあります。」というエラーが表示されます。

分類Dev

Delphi-VCLのバグを修正するときに、ユニットxが異なるバージョンのxでコンパイルされました

分類Dev

Windows 10はタッチパッドとタッチスクリーンを検出しません(デバイスマネージャーには表示されません)

分類Dev

Windows 10 32ビットのLaTeXでのエラー:コマンドを開始できませんでした

分類Dev

チョコレートパッケージがWindows10のOneGet / PackageManagement経由でインストールされませんか?

分類Dev

1台のWindows10コンピューターを別のWindows10コンピューターのネットワークに参加させます

分類Dev

Windows 10にアップグレードした後、Git-Bashコマンドプロンプトが開きません

Related 関連記事

  1. 1

    AndroidでDelphi10のスレッドを終了する

  2. 2

    Delphi10。この文字まで文字をコピーする関数 ':'

  3. 3

    独自のスプラッシュスクリーンDelphi10シアトルを作成する

  4. 4

    delphixe6ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しません

  5. 5

    TList <_AnyDynamicArrays_>でDelphi10のバグを回避するにはどうすればよいですか?

  6. 6

    Delphi10のhttpコンポーネントを使用してInstagramのフォローリストを取得する方法

  7. 7

    「ターゲットのマルチバイトコードページにUnicode文字のマッピングが存在しない」原因は何ですか?

  8. 8

    ターゲットのマルチバイトコードページにUnicode文字のマッピングがありません:MemoryStreamを文字列に変換する方法

  9. 9

    delphi プロジェクトのビルド中にエラー ターゲット クリーンがプロジェクトに存在しません msbuild エラー

  10. 10

    Windows10のインストール-コンピューターに必要なメディアドライバーがありません

  11. 11

    jqueryバリデータプラグインを使用して、2つの10進数+ドット+コンマのみに正規表現を設定します

  12. 12

    WinPEのWindowsの10イメージング - バッチスクリプトの「PAUSE」の後に「リブートwpeutil」と呼ぶことができません。

  13. 13

    間違った文字への10のネットワークドライブマッピングに勝つ

  14. 14

    codeigniterのページ付けデータテーブルの10レコード後に、ブートストラップモーダルがポップアップしませんでした

  15. 15

    JDK10 SDKとのIntelliJのは、1.8ターゲットとのMavenプロジェクトをコンパイルしません。

  16. 16

    Windows 10のアップグレード:エラーなしで23%で停止し、Dismはboot.wimWIMイメージをマウントしません

  17. 17

    ブートマネージャーのEFIフォルダーの内容を誤って削除してしまいました。修復ディスクはありませんが、コンピューターの電源は入っています。(ウインドウズ10)

  18. 18

    Windows 10Pro-以前のバージョンはマップされたネットワークドライブでは機能しません

  19. 19

    ビルド10586などの特定のバージョンのWindows10のターゲットコード

  20. 20

    Windows 10 バージョン 1909 に更新できません: エラー コード 0x80073712 であり、コンピューターをリセットしてもエラー コードが生成されます

  21. 21

    Windows 10の評価が非常に速くシャットダウンし、フルバージョンを再インストールできません

  22. 22

    Delphi 10は、従来の(MetroUI以外の)Windows 32/64アプリケーションでマルチタッチをサポートしていますか?

  23. 23

    Windows 10システム状態バックアップwbadminコマンドは、「指定されたバックアップストレージの場所に別のボリュームにシャドウコピーストレージがあります。」というエラーが表示されます。

  24. 24

    Delphi-VCLのバグを修正するときに、ユニットxが異なるバージョンのxでコンパイルされました

  25. 25

    Windows 10はタッチパッドとタッチスクリーンを検出しません(デバイスマネージャーには表示されません)

  26. 26

    Windows 10 32ビットのLaTeXでのエラー:コマンドを開始できませんでした

  27. 27

    チョコレートパッケージがWindows10のOneGet / PackageManagement経由でインストールされませんか?

  28. 28

    1台のWindows10コンピューターを別のWindows10コンピューターのネットワークに参加させます

  29. 29

    Windows 10にアップグレードした後、Git-Bashコマンドプロンプトが開きません

ホットタグ

アーカイブ