I couldn't find a function that calculates the size of one character, but I finally found my solution in the code from sf::Text::UpdateRect.
I will post my code here in case someone needs the same function.
size_t CharacterSize = Text.GetCharacterSize();
sf::Font Font = Text.GetFont();
std::string String = Text.GetString().ToAnsiString();
bool bold = (Text.GetStyle() & sf::Text::Bold);
size_t MaxHeight = 0;
for (size_t x=0; x<Text.GetString().GetSize(); ++x)
{
sf::Uint32 Character = String.at(x);
const sf::Glyph& CurrentGlyph = Font.GetGlyph(Character, CharacterSize, bold);
size_t Height = CurrentGlyph.Bounds.Height;
if (MaxHeight < Height)
MaxHeight = Height;
}
sf::FloatRect rect = Text.GetRect();
rect.Left = (TextureNormal.GetWidth() / 2.0f) - (rect.Width / 2.0f);
rect.Top = (TextureNormal.GetHeight() / 2.0f) - (MaxHeight/2.0f) - (rect.Height-MaxHeight) + ((rect.Height-CharacterSize)/2.0f);
Text.SetPosition(rect.Left, rect.Top);
EDIT: The text was drawn too high but I have solved it and changed it in the code.