Même si c’est vrai qu’en théorie 汉语 et 中文 veulent tous les 2 dire « La langue chinoise », en pratique il y a quand même quelques petites différences :
Déjà comme tu l’as mentionné, 中文 mets un peu plus l’accent sur les caractères chinois puisque c’était le nom donné à la base pour le système d’écriture (中国的文字).
汉语 au contraire, a tendance à mettre plutôt l’accent sur la langue parlée puisque c’était le nom donné au dialecte des han à la base (L’ethnie majoritaire en Chine).
Mais comme 中文 englobe la culture en plus de la langue (parlée + écrite) tu peux tout à fait dire 我会说中文 pour dire « je sais parler chinois ». C’est correct !
De plus, comme il y a beaucoup de dialectes en Chine, il a bien fallu à un moment donné choisir « un dialecte de référence » comme langue commune.
C’est ainsi qu’est né le 普通话 qui n’est autre qu’une version « standardisée » du dialecte de Pékin
En termes de fréquence ça donne 中文》普通话》汉语
Donc pour faire référence à la langue parlée, tu peux utiliser 汉语 ou 普通话
Une autre différence que peu de gens connaissent, c’est que 汉语 est souvent utilisé pour faire référence au Chinois en tant que langue étrangère.
C’est la raison pour laquelle, tu retrouves si souvent ce mot sur la couverture des manuels de chinois. Donc si t’apprends le chinois en tant que langue étrangère, tu peux dire : 我在学汉语
Mais les chinois entre eux n’utiliseront jamais le mot 汉语. Ils diront plutôt 我会说中文.
Bon après en pratique ce n’est pas très grave si tu dis 我在学中文 puisqu’en règle générale, on apprend rarement la langue séparément de la culture. Les 2 vont ensembles.
J’espère que ça répond à ta question