我正在使用Interop.Domino.dll和Lotus Notes 8.5跟随c#.net中的代码: 我在Lotus Notes客户端中创建新文件夹。文件夹名称包含一些unicode字符。如果我尝试设置名称,我将收到错误
“”注释错误:名称太长 (DifferentlanguagesÜðĂþÖÖ〜VV¶ñí暎šäâΤø˙Ÿœ€...“ΠĆıœšŽÞÚ)“
lotus notes的文件夹名称限制为64个字符,但此字符串有54个字符
这是我的代码
NotesSeesion LotusNotesSession=new NoteSession();
LotusNotesSession.Initialize(null);
NotesDatabase Database=LotusNotesSession.GetDatabase("",FilePath,false);
Database.EnableFolder("DifferentlanguagesÜðĂþÖÖ~VV¶ñí暎šäâΤø˙Ÿœ€…„∏ĆıœšŽÞ);
//异常“注释错误:名称太长 (DifferentlanguagesÜðĂþÖÖ〜VV¶ñí暎šäâΤø˙Ÿœ€...“ΠĆıœšŽÞÚ)“
答案 0 :(得分:3)
Lotus Notes的文件夹名称限制可能是64 bytes ,文件夹名称以UTF-8编码,这会导致字符串为89个字节。
当程序员没有真正关注他们正在做什么或记录什么时,这种情况经常发生。我的猜测是,这个限制早于Lotus Notes中的Unicode支持,并且当在单字节代码页中解释事物时它保持为真,但最终UTF-8用于在此时引入Unicode支持,这减少了可用字符的数量以某种不可预测的方式。