90 votes

Caractère de délimitation le moins utilisé dans un texte normal < ASCII 128

Pour des raisons de codage qui vous horrifieraient (je suis trop gêné pour le dire), je dois stocker un certain nombre d'éléments de texte dans une seule chaîne.

Je vais les délimiter en utilisant un caractère.

Quel est le meilleur caractère à utiliser pour cela, c'est-à-dire celui qui a le moins de chances d'apparaître dans le texte ? Il doit être imprimable et probablement inférieur à 128 en ASCII pour éviter les problèmes de localisation.

2voto

Eppz Points 1907

Pipe pour la victoire ! |

1voto

Iain Holder Points 7930

Vous allez probablement devoir choisir quelque chose et ignorer ses autres utilisations.

+ 

pourrait être un bon candidat.

1voto

Je ne pense pas avoir déjà vu une esperluette suivie d'une virgule dans un texte naturel, mais vous pouvez d'abord vérifier le fichier pour voir s'il contient le délimiteur, et si c'est le cas, utiliser une alternative. Si vous voulez toujours être sûr que le délimiteur que vous utilisez ne causera pas de conflit, faites une boucle pour vérifier le fichier pour le délimiteur que vous voulez, et s'il existe, alors doublez la chaîne jusqu'à ce que le fichier n'ait plus de correspondance. Peu importe s'il y a des chaînes similaires, car votre programme ne cherchera que les correspondances exactes entre les délimiteurs.

1voto

Coxy Points 5256

Cela peut être bon ou mauvais (généralement mauvais) selon la situation et la langue, mais n'oubliez pas que vous pouvez toujours coder le tout en Base64. Vous n'avez alors pas à vous soucier de l'échappement et du dés échappement de divers motifs de chaque côté, et vous pouvez simplement séparer et diviser les chaînes de caractères en fonction d'un caractère qui n'est pas utilisé dans votre jeu de caractères Base64.

J'ai dû recourir à cette solution lorsque j'ai dû placer des documents XML dans des propriétés/nœuds XML. Les propriétés ne peuvent pas du tout contenir de blocs CDATA, et les nœuds échappés en tant que CDATA ne peuvent évidemment pas contenir d'autres blocs CDATA sans casser la structure.

Le format CSV est probablement une meilleure idée pour la plupart des situations, cependant.

1voto

Will Johnson Points 7

Le pipe et le caret sont des choix évidents. J'aimerais noter que si les utilisateurs doivent taper la réponse entière, l'espacement est plus facile à trouver sur n'importe quel clavier que la barre verticale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X