Du könntest beispielsweise das offizielle Euro-Symbol verwenden:
\documentclass{scrartcl}
\usepackage{ifluatex}
\ifluatex
\usepackage {luatextra}
\setmainfont{XCharter}
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{XCharter}
\fi
\usepackage{eurosym}
\begin{document}
XCharter ist eine schöne Schriftart aber leider hat sie kein "\euro"-Symbol.
\end{document}
Das Paket stellt AFAIR auch noch weitere Versionen eines Euro-Symbols bereit.
Wenn man will, kann man auch das Zeichen »`€`« direkt ersetzen. Das geht für pdfLaTeX mit `\DeclareUnicodeCharacter` und für LuaLaTeX und XeLaTeX mit einem aktiven Zeichen:
\documentclass{scrartcl}
\usepackage{ifluatex}
\usepackage{eurosym}
\ifluatex
\usepackage {luatextra}
\setmainfont{XCharter}
\catcode`\€=\active
\let€=\euro
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{XCharter}
\DeclareUnicodeCharacter{20AC}{\euro}
\fi
\begin{document}
XCharter ist eine schöne Schriftart aber leider hat sie kein "€"-Symbol.
\end{document}
Nicht zu empfehlen ist, das €-Zeichen aus irgend einem anderen Font zu verwenden. Prinzipiell gibt es zwei Fälle für Eurozeichen in Fonts: Entweder ist es an den Font speziell angepasst oder es handelt sich um das Originalzeichen. Die Verwendung des Originalzeichens lässt sich immer damit begründen, dass nun einmal genau dieses Zeichen das offizielle Euro-Zeichen ist. Das angepasste Euro-Zeichen aus einem anderen Font sollte man hingegen nur verwenden, wenn es vom Stil zum tatsächlich verwendeten Font passt. Das zu beurteilen ist selbst für jemanden wie mich, der sich schon seit mehr als 25 Jahren hobbymäßig mit Typographie aber nicht so sehr mit Fonts beschäftigt nicht immer einfach. Das € aus Linux Libertine erscheint mir jedenfalls für Charter zu schmal:
\documentclass{scrartcl}
% ACHTUNG BRAUCHT UNBEDINGT LuaLaTeX oder XeLaTeX!!!
\usepackage{fontspec}
\setmainfont{XCharter}
\catcode`\€=\active
\newfontfamily{\libertinefont}{Linux Libertine O}
\DeclareRobustCommand*\libertineeuro{{\libertinefont\char 8364 }}
\let€=\libertineeuro
\begin{document}
XCharter ist eine schöne Schriftart aber leider hat sie kein "€"-Symbol
Libertine hat aber ein \libertineeuro.
\end{document}
Natürlich kann man – zumindest für XeLaTeX und LuaLaTeX – die hier gezeigte Definition von `\libertineeuro` auch mit der Lösung von @Henri, also der Verwendung von `newunicodechar` kombinieren.
Die entsprechende Lösung für pdfLaTeX habe ich nicht angegeben, weil ich dazu erst einmal hätte schauen müssen, in welcher Font-Family mit welchem Encoding das € bei der Linux-Libertine-Einbindung für pdfLaTeX zu finden ist, damit ich diese per `\fontfamily{…}\fontencoding{…}\selectfont` oder direkt per `\usefont` auswählen könnte.