小编Jak*_*chs的帖子

DOM4J utf-8编码Umlaute(Ä,ü,ß)错误

DOM4j用于解析和编写始终在UTF-8中的XML-Tree 。

我的XML文件包含德语特殊字符。解析它们不是问题,但是当我将树写入文件时,特殊字符将被转换为?字符。

我无法更改XML文件的编码,因为它仅限于UTF-8

SAXReader xmlReader = new SAXReader();
xmlReader.setEncoding("UTF-8");

Document doc = xmlReader.read(file);
doc.setXMLEncoding("UTF-8");
Element root = doc.getRootElement();

// manipulate doc

OutputFormat format = new OutputFormat();

format.setEncoding("UTF-8");

XMLWriter writer = new XMLWriter(new FileWriter(file), format);

writer.write(doc);
writer.close();
Run Code Online (Sandbox Code Playgroud)

预期产量

... 
<statementText>This is a test!Ä Ü ß</statementText>
...
Run Code Online (Sandbox Code Playgroud)

实际产量

...
<statementText>This is a test!? ? ?</statementText>
...
Run Code Online (Sandbox Code Playgroud)

java xml utf-8 character-encoding dom4j

3
推荐指数
1
解决办法
379
查看次数

组合 IO 操作

我正在尝试编写一些 IO 包装的函数。

\n

我当前的代码(有效)是:

\n
getUserHome :: IO String\ngetUserHome = do\n    usr_id <- getRealUserID\n    homeDirectory <$> getUserEntryForID usr_id\n
Run Code Online (Sandbox Code Playgroud)\n

我正在寻找一种更方便的表示法(不使用 -do关键字的表示法)。

\n

没有任何 Monadic 沙拉我就写

\n
getUserHome = homeDirectory . getUserEntryForID . getRealUserID\n
Run Code Online (Sandbox Code Playgroud)\n

我猜想还有一个.尊重 Monad 的替代运算符..?但在我所有的寻找中,我还没有找到它。

\n
\n

我尝试过<$>,但这似乎不是我想要的:

\n
src/Main.hs:49:21: error:\n    \xe2\x80\xa2 Couldn\'t match type \xe2\x80\x98IO UserEntry\xe2\x80\x99 with \xe2\x80\x98UserEntry\xe2\x80\x99\n      Expected type: UserID -> UserEntry\n        Actual type: UserID -> IO UserEntry\n    \xe2\x80\xa2 In the second argument of \xe2\x80\x98(<$>)\xe2\x80\x99, namely \xe2\x80\x98getUserEntryForID\xe2\x80\x99\n      In the …
Run Code Online (Sandbox Code Playgroud)

haskell io-monad

3
推荐指数
2
解决办法
179
查看次数

有没有一种简单的方法可以向通过 std::to_string(int) 创建的字符串添加前导零?

std::string通过将 an 转换int为 a部分创建了以下内容string

std::string text = std::string("FPS: " + std::to_string(1000 / d));
Run Code Online (Sandbox Code Playgroud)

示例输出:

每秒帧数:60

现在,我想专门为int零件添加前导零,以便获得以下输出:

每秒帧数:060

我已经知道如何stdout使用std::cout << std::setfill('0') << std::setw(5) .

但是我还没有找到简单std::to_string()转换的解决方案。

c++ string formatting std

1
推荐指数
1
解决办法
86
查看次数

标签 统计

c++ ×1

character-encoding ×1

dom4j ×1

formatting ×1

haskell ×1

io-monad ×1

java ×1

std ×1

string ×1

utf-8 ×1

xml ×1